Datasets documentation

Pandas ile Kullanım

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Pandas ile Kullanım

Bu belge, datasets kütüphanesini Pandas ile kullanmaya yönelik kısa bir giriş niteliğindedir; odak noktası, veri setlerini Pandas işlevleri ile işleme ve bir veri setini Pandas'a dönüştürme ya da Pandas'tan veri setine çevirme konularıdır.

Bu özellikle faydalıdır çünkü datasets alt yapısında PyArrow kullanır ve PyArrow, Pandas ile iyi entegre olduğundan hızlı işlemlere olanak tanır.

Veri seti biçimi

Varsayılan olarak veri kümeleri, tamsayılar, ondalık sayılar, dizeler, listeler gibi standart Python nesneleri döndürür.

Bunun yerine Pandas DataFrames veya Series almak için, veri setinin biçimini Dataset.with_format() kullanarak pandas olarak ayarlayabilirsiniz:

>>> 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

Bu, örneğin load_dataset(..., streaming=True) kullanılarak elde edilen IterableDataset nesneleri için de geçerlidir:

>>> 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

Verileri işleyin

Pandas işlevleri genellikle elle yazılmış standart python işlevlerinden daha hızlıdır ve bu nedenle veri işleme optimizasyonu için iyi bir seçenektir. Bir veri setini Dataset.map() veya Dataset.filter() içinde işlemek için Pandas işlevlerini kullanabilirsiniz:

>>> 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

Pandas'ta veri satır satır işlemek yerine toplu (batch) işlemek daha hızlı olduğu için batched=True kullanıyoruz. Ayrıca map() içinde batch_size= parametresini kullanarak her bir df'in boyutunu ayarlamak da mümkündür.

Bu, IterableDataset.map() ve IterableDataset.filter() için de geçerlidir.

Pandas'tan İçe Aktarma veya Dışa Aktarma

Pandas'tan veri içe aktarmak için Dataset.from_pandas() kullanabilirsiniz:

ds = Dataset.from_pandas(df)

Ve bir Dataset'i Pandas DataFrame olarak dışa aktarmak için Dataset.to_pandas() kullanabilirsiniz:

df = Dataset.to_pandas()
Update on GitHub