Column project operation on `datasets.Dataset`
{'login': 'daskol', 'id': 9336514, 'node_id': 'MDQ6VXNlcjkzMzY1MTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/9336514?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/daskol', 'html_url': 'https://github.com/daskol', 'followers_url': 'https://api.github.com/users/daskol/followers', 'following_url': 'https://api.github.com/users/daskol/following{/other_user}', 'gists_url': 'https://api.github.com/users/daskol/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/daskol/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/daskol/subscriptions', 'organizations_url': 'https://api.github.com/users/daskol/orgs', 'repos_url': 'https://api.github.com/users/daskol/repos', 'events_url': 'https://api.github.com/users/daskol/events{/privacy}', 'received_events_url': 'https://api.github.com/users/daskol/received_events', 'type': 'User', 'site_admin': False}
[{'id': 1935892865, 'node_id': 'MDU6TGFiZWwxOTM1ODkyODY1', 'url': 'https://api.github.com/repos/huggingface/datasets/labels/duplicate', 'name': 'duplicate', 'color': 'cfd3d7', 'default': True, 'description': 'This issue or pull request already exists'}, {'id': 1935892871, 'node_id': 'MDU6TGFiZWwxOTM1ODkyODcx', 'url': 'https://api.github.com/repos/huggingface/datasets/labels/enhancement', 'name': 'enhancement', 'color': 'a2eeef', 'default': True, 'description': 'New feature or request'}]
[]
Hi ! This would be a nice addition indeed :) This sounds like a duplicate of https://github.com/huggingface/datasets/issues/5468

> Not sure. Some of my PRs are still open and some do not have any discussions.

Sorry to hear that, feel free to ping me on those PRs
### Feature request

There is no operation to select a subset of columns of original dataset. Expected API follows.
```python
a = Dataset.from_dict({
    'int': [0, 1, 2]
    'char': ['a', 'b', 'c'],
    'none': [None] * 3,
})

b = a.project('int', 'char')  # usually, .select()

print(a.column_names)  # stdout: ['int', 'char', 'none']
print(b.column_names)  # stdout: ['int', 'char']
```
Method project can easily accept not only column names (as a `str)` but univariant function applied to corresponding column as an example. Or keyword arguments can be used in order to rename columns in advance (see `pandas`, `pyspark`, `pyarrow`, and SQL)..

### Motivation

Projection is a typical operation in every data processing library. And it is a basic block of a well-known data manipulation language like SQL. Without this operation `datasets.Dataset` interface is not complete.

### Your contribution

Not sure. Some of my PRs are still open and some do not have any discussions.
{'url': 'https://api.github.com/repos/huggingface/datasets/issues/5474/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}