Datasets documentation

Gunakan dengan Pandas

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Gunakan dengan Pandas

Dokumen ini adalah pengantar singkat tentang penggunaan datasets dengan Pandas, dengan fokus khusus pada cara memproses dataset menggunakan fungsi Pandas, serta cara mengonversi dataset ke Pandas atau dari Pandas.

Hal ini sangat berguna karena memungkinkan operasi yang cepat, mengingat datasets menggunakan PyArrow di baliknya dan PyArrow terintegrasi dengan baik dengan Pandas.

Format dataset

Secara default, dataset mengembalikan objek Python biasa: bilangan bulat, bilangan desimal, string, daftar, dan sebagainya.

Untuk mendapatkan Pandas DataFrames atau Series sebagai gantinya, Anda dapat mengatur format dataset menjadi pandas menggunakan Dataset.with_format():

>>> from datasets import Dataset
>>> data = {"col_0": ["a", "b", "c", "d"], "col_1": [0., 0., 1., 1.]}
>>> ds = Dataset.from_dict(data)
>>> ds = ds.with_format("pandas")
>>> ds[0]       # pd.DataFrame
  col_0  col_1
0     a    0.0
>>> ds[:2]      # pd.DataFrame
  col_0  col_1
0     a    0.0
1     b    0.0
>>> ds["data"]  # pd.Series
0    a
1    b
2    c
3    d
Name: col_0, dtype: object

Hal ini juga berlaku untuk objek IterableDataset yang diperoleh, misalnya, menggunakan load_dataset(..., streaming=True):

>>> ds = ds.with_format("pandas")
>>> for df in ds.iter(batch_size=2):
...     print(df)
...     break
  col_0  col_1
0     a    0.0
1     b    0.0

Proses data

Fungsi Pandas umumnya lebih cepat daripada fungsi python yang ditulis manual, sehingga merupakan pilihan yang baik untuk mengoptimalkan pemrosesan data. Anda dapat menggunakan fungsi Pandas untuk memproses dataset di Dataset.map() atau Dataset.filter():

>>> from datasets import Dataset
>>> data = {"col_0": ["a", "b", "c", "d"], "col_1": [0., 0., 1., 1.]}
>>> ds = Dataset.from_dict(data)
>>> ds = ds.with_format("pandas")
>>> ds = ds.map(lambda df: df.assign(col_2=df.col_1 + 1), batched=True)
>>> ds[:2]
  col_0  col_1  col_2
0     a    0.0    1.0
1     b    0.0    1.0
>>> ds = ds.filter(lambda df: df.col_0 == "b", batched=True)
>>> ds[0]
  col_0  col_1  col_2
0     b    0.0    1.0

Kami menggunakan batched=True karena memproses data dalam bentuk batch di Pandas lebih cepat daripada baris per baris. Anda juga dapat menggunakan batch_size= di map() untuk mengatur ukuran setiap df.

Hal ini juga berlaku untuk IterableDataset.map() dan IterableDataset.filter().

Import atau Export dari Pandas

Untuk mengimpor data dari Pandas, Anda dapat menggunakan Dataset.from_pandas():

ds = Dataset.from_pandas(df)

Dan Anda dapat menggunakan Dataset.to_pandas() untuk mengekspor Dataset ke Pandas DataFrame:

df = Dataset.to_pandas()
Update on GitHub