Datasets documentation
الاستخدام مع Pandas
الاستخدام مع Pandas
هذا المستند مقدمة سريعة لاستخدام datasets مع Pandas، مع تركيز خاص على كيفية معالجة مجموعات البيانات باستخدام دوال Pandas، وكيفية تحويل مجموعة بيانات إلى Pandas أو من Pandas.
يُعدّ هذا مفيدًا بشكل خاص لأنه يتيح عمليات سريعة، حيث يستخدم datasets PyArrow في الخلفية، وPyArrow مُدمج جيدًا مع Pandas.
تنسيق مجموعة البيانات
بشكل افتراضي، تُرجع مجموعات البيانات كائنات بايثون العادية: أعداد صحيحة، وأعداد عشرية، ونصوص، وقوائم، وما إلى ذلك.
للحصول على إطارات بيانات Pandas أو سلاسل Series بدلاً من ذلك، يمكنك تعيين صيغة مجموعة البيانات إلى pandas باستخدام 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يعمل هذا أيضًا مع كائنات IterableDataset التي يتم الحصول عليها، على سبيل المثال، باستخدام 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معالجة البيانات
تكون دوال Pandas أسرع بشكل عام من دوال بايثون المكتوبة يدوياً، ولذلك فهي خيار جيد لتحسين معالجة البيانات. يمكنك استخدام دوال Pandas لمعالجة مجموعة بيانات في Dataset.map() أو 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نستخدم batched=True لأن معالجة دفعات البيانات في Pandas أسرع من معالجتها صفًا بصف. كما يمكن استخدام batch_size= في map() لتحديد حجم كل df.
يعمل هذا أيضًا مع IterableDataset.map() و IterableDataset.filter().
استيراد أو تصدير من Pandas
لاستيراد البيانات من Pandas، يمكنك استخدام Dataset.from_pandas():
ds = Dataset.from_pandas(df)
ويمكنك استخدام Dataset.to_pandas() لتصدير مجموعة بيانات إلى إطار بيانات Pandas:
df = Dataset.to_pandas()