Datasets documentation
فئات الجداول
فئات الجداول
يعتمد كل كائن Dataset على جدول PyArrow.
يمكن تحميل الجدول من القرص (بإسناد الذاكرة) أو في الذاكرة.
يتوفر عدة أنواع من الجداول، وكلها ترث من table.Table.
جدول
يغلّف جدول pyarrow باستخدام التركيب.
هذا هو الفئة الأساسية لـ InMemoryTable وMemoryMappedTable وConcatenationTable.
يُنفّذ جميع الخصائص/الدوال الأساسية لفئة pyarrow Table باستثناء تحويلات الجدول: slice, filter, flatten, combine_chunks, cast, add_column, append_column, remove_column, set_column, rename_columns وdrop.
تختلف طريقة تنفيذ هذه الأساليب في الفئات الفرعية.
validate
< source >( *args**kwargs )
أداء فحوصات التحقق. يتم رفع استثناء إذا فشل التحقق.
بشكل افتراضي، تُنفَّذ فحوصات التحقق الرخيصة فقط. مرّر full=True لإجراء فحوصات تحقق شاملة (قد تكون O(n)).
يساوي
< source >( *args**kwargs ) → bool
المعاملات
- other (جدول) — الجدول الذي تتم المقارنة معه.
- check_metadata
bool، القيمة الافتراضيةFalse) — ما إذا كان يجب التحقق من تساوي بيانات وصفية المخطط (schema metadata) أيضًا.
يعيد
bool
تحقق مما إذا كانت محتويات جدولين متساويتين.
to_batches
< source >( *args**kwargs )
تحويل الجدول إلى قائمة من كائنات RecordBatch (متجاورة).
تحويل الجدول إلى dict أو OrderedDict.
to_pandas
< source >( *args**kwargs ) → pandas.Series or pandas.DataFrame
المعاملات
- memory_pool (
MemoryPool، القيمة الافتراضيةNone) — وحدة ذاكرة Arrow MemoryPool المستخدمة للتخصيصات. تُستخدم وحدة الذاكرة الافتراضية إذا لم يتم تمرير وحدة. - strings_to_categorical (
bool، القيمة الافتراضيةFalse) — ترميز أنواع النصوص (UTF8) والثنائية إلىpandas.Categorical. - categories (
list، الافتراضيempty) — قائمة الحقول التي يجب إرجاعها على شكلpandas.Categorical. ينطبق فقط على هياكل البيانات المشابهة للجداول. - zero_copy_only (
bool، القيمة الافتراضيةFalse) — ارفع استثناءArrowExceptionإذا كان استدعاء هذه الدالة سيتطلب نسخ البيانات الأساسية. - integer_object_nulls (
bool، القيمة الافتراضيةFalse) — تحويل الأعداد الصحيحة التي تحتوي على قيم فارغة إلى كائنات. - date_as_object (
bool، القيمة الافتراضيةTrue) — تحويل التواريخ إلى كائنات. إذا كانتFalse، يتم التحويل إلى نوعdatetime64[ns]. - timestamp_as_object (
bool، القيمة الافتراضيةFalse) — تحويل الطوابع الزمنية غير النانوثانية (np.datetime64) إلى كائنات. هذا مفيد إذا كانت لديك طوابع زمنية لا تتناسب مع نطاق التواريخ المعتاد للطوابع الزمنية النانوثانية (1678 م - 2262 م). إذا كانت القيمةFalse، يتم تحويل جميع الطوابع الزمنية إلى نوع البياناتdatetime64[ns]. - use_threads (
bool، القيمة الافتراضيةTrue) — ما إذا كان سيتم موازاة التحويل باستخدام عدة خيوط. - deduplicate_objects (
bool، القيمة الافتراضيةFalse) — لا تنشئ نسخًا متعددة من كائنات بايثون عند إنشائها، لتوفير استخدام الذاكرة. ستكون عملية التحويل أبطأ. - ignore_metadata (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، فلا تُستخدم بيانات pandas الوصفية لإعادة بناء فهرس DataFrame، إن وُجد. - safe (
bool، القيمة الافتراضيةTrue) — بالنسبة لبعض أنواع البيانات، يلزم إجراء تحويل (cast) لتخزين البيانات في إطار بيانات pandas أو سلسلة Series (على سبيل المثال، تُخزَّن الطوابع الزمنية دائمًا بالنانو ثانية في pandas). يتحكم هذا الخيار في ما إذا كان التحويل آمنًا أم لا. - split_blocks (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، يتم إنشاء كتلة داخلية واحدة لكل عمود عند إنشاء pandas.DataFrame منRecordBatchأوTable. على الرغم من أن هذا قد يقلل مؤقتًا من استهلاك الذاكرة، إلا أن عمليات pandas المختلفة قد تُطلق عملية “توحيد” (consolidation) التي قد تُفاقم استخدام الذاكرة. - self_destruct (
bool، القيمة الافتراضيةFalse) — تجريبي: إذا كانتTrue، فسيتم محاولة تحرير ذاكرة Arrow الأصلية أثناء تحويل كائن Arrow إلى pandas. إذا استخدمت الكائن بعد استدعاءto_pandasمع هذا الخيار، فسيؤدي ذلك إلى انهيار برنامجك. - types_mapper (
function، القيمة الافتراضيةNone) — دالة تُحوّل نوع pyarrow DataType إلىExtensionDtypeفي pandas. يمكن استخدام هذه الدالة لتجاوز النوع الافتراضي في pandas عند تحويل الأنواع المدمجة في pyarrow أو في حال غيابpandas_metadataفي مخطط الجدول. تستقبل الدالة نوع pyarrow DataType ومن المتوقع أن تُرجعExtensionDtypeفي pandas أوNoneإذا كان يجب استخدام التحويل الافتراضي لذلك النوع. إذا كان لديك قاموس للتحويل، يمكنك تمريرdict.getكدالة.
يعيد
pandas.Series أو pandas.DataFrame
pandas.Series أو pandas.DataFrame اعتمادًا على نوع الكائن
تحويل إلى مصفوفة NumPy متوافقة مع pandas أو إطار بيانات DataFrame، حسب ما يناسب.
حقل
< source >( *args**kwargs )
اختر حقلًا في المخطط (schema) من خلال اسم العمود أو الفهرس الرقمي.
عمود
< source >( *args**kwargs )
اختر عمودًا باسم العمود أو بالفهرس الرقمي.
مُتكرِّر على جميع الأعمدة بترتيبها العددي.
مخطط الجدول وأعمدته.
قائمة بجميع الأعمدة بالترتيب الرقمي.
عدد الأعمدة في هذه الجدول.
عدد الصفوف في هذه الجدول.
بسبب تعريف الجدول، فإن جميع الأعمدة تحتوي على نفس عدد الصفوف.
أبعاد الجدول: (#rows, #columns).
إجمالي عدد البايتات المستهلكة بواسطة عناصر الجدول.
InMemoryTable
يُقال إن الجدول في الذاكرة (in-memory) عندما يُحمَّل في ذاكرة الوصول العشوائي (RAM) للمستخدم.
يقوم التخليل (Pickling) بنسخ جميع البيانات باستخدام الذاكرة. تنفيذها بسيط ويعتمد بشكل مباشر على طرق جدول pyarrow الأساسية.
يختلف هذا عن جدول MemoryMapped الذي لا ينسخ عملية التخليل (pickling) جميع البيانات في الذاكرة. أما في حالة MemoryMapped، فإن عملية فك التخليل (unpickling) تعيد تحميل الجدول من القرص بدلاً من ذلك.
يجب استخدام InMemoryTable عندما تتسع البيانات للذاكرة، بينما تُحجز MemoryMapped للبيانات الأكبر من حجم الذاكرة أو عندما تريد إبقاء بصمة الذاكرة لتطبيقك منخفضة.
validate
< source >( *args**kwargs )
أداء فحوصات التحقق. يتم رفع استثناء إذا فشل التحقق.
بشكل افتراضي، تُنفَّذ فحوصات التحقق الرخيصة فقط. مرّر full=True لإجراء فحوصات تحقق شاملة (قد تكون O(n)).
يساوي
< source >( *args**kwargs ) → bool
المعاملات
- other (جدول) — الجدول الذي تتم المقارنة معه.
- check_metadata
bool، القيمة الافتراضيةFalse) — ما إذا كان يجب التحقق من تساوي بيانات وصفية المخطط (schema metadata) أيضًا.
يعيد
bool
تحقق مما إذا كانت محتويات جدولين متساويتين.
to_batches
< source >( *args**kwargs )
تحويل الجدول إلى قائمة من كائنات RecordBatch (متجاورة).
تحويل الجدول إلى dict أو OrderedDict.
to_pandas
< source >( *args**kwargs ) → pandas.Series or pandas.DataFrame
المعاملات
- memory_pool (
MemoryPool، القيمة الافتراضيةNone) — وحدة ذاكرة Arrow MemoryPool المستخدمة للتخصيصات. تُستخدم وحدة الذاكرة الافتراضية إذا لم يتم تمرير وحدة. - strings_to_categorical (
bool، القيمة الافتراضيةFalse) — ترميز أنواع النصوص (UTF8) والثنائية إلىpandas.Categorical. - categories (
list، الافتراضيempty) — قائمة الحقول التي يجب إرجاعها على شكلpandas.Categorical. ينطبق فقط على هياكل البيانات المشابهة للجداول. - zero_copy_only (
bool، القيمة الافتراضيةFalse) — ارفع استثناءArrowExceptionإذا كان استدعاء هذه الدالة سيتطلب نسخ البيانات الأساسية. - integer_object_nulls (
bool، القيمة الافتراضيةFalse) — تحويل الأعداد الصحيحة التي تحتوي على قيم فارغة إلى كائنات. - date_as_object (
bool، القيمة الافتراضيةTrue) — تحويل التواريخ إلى كائنات. إذا كانتFalse، يتم التحويل إلى نوعdatetime64[ns]. - timestamp_as_object (
bool، القيمة الافتراضيةFalse) — تحويل الطوابع الزمنية غير النانوثانية (np.datetime64) إلى كائنات. هذا مفيد إذا كانت لديك طوابع زمنية لا تتناسب مع نطاق التواريخ المعتاد للطوابع الزمنية النانوثانية (1678 م - 2262 م). إذا كانت القيمةFalse، يتم تحويل جميع الطوابع الزمنية إلى نوع البياناتdatetime64[ns]. - use_threads (
bool، القيمة الافتراضيةTrue) — ما إذا كان سيتم موازاة التحويل باستخدام عدة خيوط. - deduplicate_objects (
bool، القيمة الافتراضيةFalse) — لا تنشئ نسخًا متعددة من كائنات بايثون عند إنشائها، لتوفير استخدام الذاكرة. ستكون عملية التحويل أبطأ. - ignore_metadata (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، فلا تُستخدم بيانات pandas الوصفية لإعادة بناء فهرس DataFrame، إن وُجد. - safe (
bool، القيمة الافتراضيةTrue) — بالنسبة لبعض أنواع البيانات، يلزم إجراء تحويل (cast) لتخزين البيانات في إطار بيانات pandas أو سلسلة Series (على سبيل المثال، تُخزَّن الطوابع الزمنية دائمًا بالنانو ثانية في pandas). يتحكم هذا الخيار في ما إذا كان التحويل آمنًا أم لا. - split_blocks (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، يتم إنشاء كتلة داخلية واحدة لكل عمود عند إنشاء pandas.DataFrame منRecordBatchأوTable. على الرغم من أن هذا قد يقلل مؤقتًا من استهلاك الذاكرة، إلا أن عمليات pandas المختلفة قد تُطلق عملية “توحيد” (consolidation) التي قد تُفاقم استخدام الذاكرة. - self_destruct (
bool، القيمة الافتراضيةFalse) — تجريبي: إذا كانتTrue، فسيتم محاولة تحرير ذاكرة Arrow الأصلية أثناء تحويل كائن Arrow إلى pandas. إذا استخدمت الكائن بعد استدعاءto_pandasمع هذا الخيار، فسيؤدي ذلك إلى انهيار برنامجك. - types_mapper (
function، القيمة الافتراضيةNone) — دالة تُحوّل نوع pyarrow DataType إلىExtensionDtypeفي pandas. يمكن استخدام هذه الدالة لتجاوز النوع الافتراضي في pandas عند تحويل الأنواع المدمجة في pyarrow أو في حال غيابpandas_metadataفي مخطط الجدول. تستقبل الدالة نوع pyarrow DataType ومن المتوقع أن تُرجعExtensionDtypeفي pandas أوNoneإذا كان يجب استخدام التحويل الافتراضي لذلك النوع. إذا كان لديك قاموس للتحويل، يمكنك تمريرdict.getكدالة.
يعيد
pandas.Series أو pandas.DataFrame
pandas.Series أو pandas.DataFrame اعتمادًا على نوع الكائن
تحويل إلى مصفوفة NumPy متوافقة مع pandas أو إطار بيانات DataFrame، حسب ما يناسب.
حقل
< source >( *args**kwargs )
اختر حقلًا في المخطط (schema) من خلال اسم العمود أو الفهرس الرقمي.
عمود
< source >( *args**kwargs )
اختر عمودًا باسم العمود أو بالفهرس الرقمي.
مُتكرِّر على جميع الأعمدة بترتيبها العددي.
مخطط الجدول وأعمدته.
قائمة بجميع الأعمدة بالترتيب الرقمي.
عدد الأعمدة في هذه الجدول.
عدد الصفوف في هذه الجدول.
بسبب تعريف الجدول، فإن جميع الأعمدة تحتوي على نفس عدد الصفوف.
أبعاد الجدول: (#rows, #columns).
إجمالي عدد البايتات المستهلكة بواسطة عناصر الجدول.
أسماء أعمدة الجدول.
مقطع
< source >( offset = 0length = None )
احسب شريحة بدون نسخ (zero-copy) لهذه الجدولة (Table).
اختر السجلات من جدول. راجع pyarrow.compute.filter للاستخدام الكامل.
تسطيح
< source >( *args**kwargs )
Flatten هذه الجدول. يتم تسطيح كل عمود من نوع struct إلى عمود واحد لكل حقل في الهيكل. تبقى الأعمدة الأخرى دون تغيير.
combine_chunks
< source >( *args**kwargs )
أنشئ جدولاً جديداً عن طريق دمج المقاطع التي يتكون منها هذا الجدول.
تُدمج جميع المقاطع الأساسية في ChunkedArray لكل عمود في مقطع واحد أو لا شيء.
cast
< source >( *args**kwargs )
قم بتحويل قيم الجدول إلى مخطط آخر.
replace_schema_metadata
< source >( *args**kwargs ) → datasets.table.Table
تجريبي: إنشاء نسخة سطحية من الجدول عن طريق استبدال بيانات الوصف (metadata) المفتاح-القيمة للمخطط (schema) ببيانات الوصف الجديدة المحددة (والتي قد تكون None، مما يؤدي إلى حذف أي بيانات وصفية موجودة مسبقًا).
add_column
< source >( *args**kwargs ) → datasets.table.Table
إضافة عمود إلى الجدول عند الموضع المحدد.
يُعاد جدول جديد مع العمود المضاف، ويبقى كائن الجدول الأصلي دون تغيير.
append_column
< source >( *args**kwargs ) → datasets.table.Table
إضافة العمود في نهاية الأعمدة.
remove_column
< source >( *args**kwargs ) → datasets.table.Table
إنشاء جدول جديد مع إزالة العمود المحدد.
set_column
< source >( *args**kwargs ) → datasets.table.Table
استبدال العمود في الجدول عند الموضع المحدد.
إنشاء جدول جديد مع إعادة تسمية الأعمدة إلى الأسماء المُقدَّمة.
select
< source >( *args**kwargs ) → datasets.table.Table
المعاملات
يعيد
جدول جديد بالأعمدة المحددة، مع الحفاظ على البيانات الوصفية.
حدد أعمدة الجدول.
يعيد جدولًا جديدًا بالأعمدة المحددة، مع الحفاظ على البيانات الوصفية.
إسقاط
< source >( *args**kwargs ) → datasets.table.Table
احذف عمودًا واحدًا أو أكثر وعُد جدولًا جديدًا.
from_pandas
< source >( *args**kwargs ) → datasets.table.Table
المعاملات
- df (
pandas.DataFrame) — - schema (
pyarrow.Schema، اختياري) — المخطط المتوقع لجداول Arrow. يمكن استخدام هذا لتحديد نوع الأعمدة إذا تعذّر استنتاجه تلقائيًا. إذا تم تمريره، فسيكون المخطط الناتج مطابقًا تمامًا لهذا المخطط. ستُثير الأعمدة المحددة في المخطط والتي لم يتم العثور عليها في أعمدة DataFrame أو في فهرسه خطأً. أما الأعمدة الإضافية أو مستويات الفهرس في DataFrame غير المحددة في المخطط فسيتم تجاهلها. - preserve_index (
bool، اختياري) — ما إذا كان سيتم تخزين الفهرس كعمود إضافي فيTableالناتج. القيمة الافتراضية None ستخزّن الفهرس كعمود، باستثناء RangeIndex الذي يُخزَّن كبيانات وصفية فقط. استخدمpreserve_index=Trueلإجباره على التخزين كعمود. - nthreads (
int، القيمة الافتراضيةNone(قد يستخدم حتى عدد معالجات النظام من الخيوط)) — إذا كانت القيمة أكبر من 1، يتم تحويل الأعمدة إلى Arrow بالتوازي باستخدام عدد الخيوط المحدد. - columns (
List[str]، اختياري) — قائمة بالأعمدة التي سيتم تحويلها. إذا كانتNone، فسيتم استخدام جميع الأعمدة. - safe (
bool، الافتراضيTrue) — التحقق من تجاوزات الحدود أو تحويلات غير آمنة أخرى،
يعيد
datasets.table.Table
تحويل pandas.DataFrame إلى جدول Arrow.
تُستنتج أنواع الأعمدة في جدول Arrow الناتج من أنواع dtypes الخاصة بـ pandas.Series داخل DataFrame. في حالة السلاسل غير الكائنية (non-object Series)، يُترجم نوع NumPy إلى ما يعادله في Arrow. أما في حالة object، فيجب تخمين نوع البيانات من خلال فحص الكائنات Python الموجودة في هذا السلسلة.
انتبه إلى أن سلسلة من نوع object لا تحمل معلومات كافية دائمًا للتوصل إلى نوع Arrow ذي معنى. في حال تعذّر استنتاج النوع، على سبيل المثال لأن إطار البيانات طوله 0 أو لأن السلسلة تحتوي فقط على كائنات None/nan، يتم تعيين النوع إلى null. يمكن تجنّب هذا السلوك من خلال إنشاء مخطط صريح وتوريده إلى هذه الدالة.
from_arrays
< source >( *args**kwargs )
المعاملات
- arrays (
List[Union[pyarrow.Array, pyarrow.ChunkedArray]]) — مصفوفات متساوية الطول يجب أن تُشكّل الجدول. - names (
List[str]، اختياري) — أسماء لأعمدة الجدول. إذا لم يُمرَّر، يجب تمرير مخطط البيانات. - schema (
Schema، القيمة الافتراضيةNone) — مخطط الجدول المنشأ. إذا لم يُمرَّر، يجب تمرير الأسماء. - metadata (
Union[dict, Mapping]، القيمة الافتراضيةNone) — بيانات وصفية اختيارية للمخطط (إذا تم استنتاجه).
إنشاء جدول من مصفوفات Arrow.
from_pydict
< source >( *args**kwargs )
إنشاء جدول من مصفوفات Arrow أو أعمدة.
from_batches
< source >( *args**kwargs ) → datasets.table.Table
أنشئ جدولاً من تسلسل أو مُتكرِّر من RecordBatches الخاصة بـ Arrow.
MemoryMappedTable
فئة datasets.table.MemoryMappedTable
< source >( table: Tablepath: strreplays: typing.Optional[list[tuple[str, tuple, dict]]] = None )
يُقال إن الجدول مُرمَّز في الذاكرة (memory mapped) عندما لا يستخدم ذاكرة الوصول العشوائي (RAM) للمستخدم، بل يقوم بتحميل البيانات من القرص بدلاً من ذلك.
لا ينسخ التخليل البيانات إلى الذاكرة. بل يُخلَّل مسار ملف arrow المُرمَّز في الذاكرة فقط، إلى جانب قائمة التحويلات التي يجب «إعادة تشغيلها» عند إعادة تحميل الجدول من القرص.
يتطلب تنفيذها تخزين سجل لجميع التحويلات التي طُبِّقت على جدول pyarrow الأساسي، بحيث يمكن “إعادة تشغيلها” عند إعادة تحميل الجدول من القرص.
يختلف هذا عن جدول InMemoryTable، حيث يؤدي التحويل إلى كائنات (pickling) إلى نسخ جميع البيانات الموجودة في الذاكرة.
يجب استخدام InMemoryTable عندما تتسع البيانات للذاكرة، بينما تُحجز MemoryMapped للبيانات الأكبر من حجم الذاكرة أو عندما تريد إبقاء بصمة الذاكرة لتطبيقك منخفضة.
validate
< source >( *args**kwargs )
أداء فحوصات التحقق. يتم رفع استثناء إذا فشل التحقق.
بشكل افتراضي، تُنفَّذ فحوصات التحقق الرخيصة فقط. مرّر full=True لإجراء فحوصات تحقق شاملة (قد تكون O(n)).
يساوي
< source >( *args**kwargs ) → bool
المعاملات
- other (جدول) — الجدول الذي تتم المقارنة معه.
- check_metadata
bool، القيمة الافتراضيةFalse) — ما إذا كان يجب التحقق من تساوي بيانات وصفية المخطط (schema metadata) أيضًا.
يعيد
bool
تحقق مما إذا كانت محتويات جدولين متساويتين.
to_batches
< source >( *args**kwargs )
تحويل الجدول إلى قائمة من كائنات RecordBatch (متجاورة).
تحويل الجدول إلى dict أو OrderedDict.
to_pandas
< source >( *args**kwargs ) → pandas.Series or pandas.DataFrame
المعاملات
- memory_pool (
MemoryPool، القيمة الافتراضيةNone) — وحدة ذاكرة Arrow MemoryPool المستخدمة للتخصيصات. تُستخدم وحدة الذاكرة الافتراضية إذا لم يتم تمرير وحدة. - strings_to_categorical (
bool، القيمة الافتراضيةFalse) — ترميز أنواع النصوص (UTF8) والثنائية إلىpandas.Categorical. - categories (
list، الافتراضيempty) — قائمة الحقول التي يجب إرجاعها على شكلpandas.Categorical. ينطبق فقط على هياكل البيانات المشابهة للجداول. - zero_copy_only (
bool، القيمة الافتراضيةFalse) — ارفع استثناءArrowExceptionإذا كان استدعاء هذه الدالة سيتطلب نسخ البيانات الأساسية. - integer_object_nulls (
bool، القيمة الافتراضيةFalse) — تحويل الأعداد الصحيحة التي تحتوي على قيم فارغة إلى كائنات. - date_as_object (
bool، القيمة الافتراضيةTrue) — تحويل التواريخ إلى كائنات. إذا كانتFalse، يتم التحويل إلى نوعdatetime64[ns]. - timestamp_as_object (
bool، القيمة الافتراضيةFalse) — تحويل الطوابع الزمنية غير النانوثانية (np.datetime64) إلى كائنات. هذا مفيد إذا كانت لديك طوابع زمنية لا تتناسب مع نطاق التواريخ المعتاد للطوابع الزمنية النانوثانية (1678 م - 2262 م). إذا كانت القيمةFalse، يتم تحويل جميع الطوابع الزمنية إلى نوع البياناتdatetime64[ns]. - use_threads (
bool، القيمة الافتراضيةTrue) — ما إذا كان سيتم موازاة التحويل باستخدام عدة خيوط. - deduplicate_objects (
bool، القيمة الافتراضيةFalse) — لا تنشئ نسخًا متعددة من كائنات بايثون عند إنشائها، لتوفير استخدام الذاكرة. ستكون عملية التحويل أبطأ. - ignore_metadata (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، فلا تُستخدم بيانات pandas الوصفية لإعادة بناء فهرس DataFrame، إن وُجد. - safe (
bool، القيمة الافتراضيةTrue) — بالنسبة لبعض أنواع البيانات، يلزم إجراء تحويل (cast) لتخزين البيانات في إطار بيانات pandas أو سلسلة Series (على سبيل المثال، تُخزَّن الطوابع الزمنية دائمًا بالنانو ثانية في pandas). يتحكم هذا الخيار في ما إذا كان التحويل آمنًا أم لا. - split_blocks (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، يتم إنشاء كتلة داخلية واحدة لكل عمود عند إنشاء pandas.DataFrame منRecordBatchأوTable. على الرغم من أن هذا قد يقلل مؤقتًا من استهلاك الذاكرة، إلا أن عمليات pandas المختلفة قد تُطلق عملية “توحيد” (consolidation) التي قد تُفاقم استخدام الذاكرة. - self_destruct (
bool، القيمة الافتراضيةFalse) — تجريبي: إذا كانتTrue، فسيتم محاولة تحرير ذاكرة Arrow الأصلية أثناء تحويل كائن Arrow إلى pandas. إذا استخدمت الكائن بعد استدعاءto_pandasمع هذا الخيار، فسيؤدي ذلك إلى انهيار برنامجك. - types_mapper (
function، القيمة الافتراضيةNone) — دالة تُحوّل نوع pyarrow DataType إلىExtensionDtypeفي pandas. يمكن استخدام هذه الدالة لتجاوز النوع الافتراضي في pandas عند تحويل الأنواع المدمجة في pyarrow أو في حال غيابpandas_metadataفي مخطط الجدول. تستقبل الدالة نوع pyarrow DataType ومن المتوقع أن تُرجعExtensionDtypeفي pandas أوNoneإذا كان يجب استخدام التحويل الافتراضي لذلك النوع. إذا كان لديك قاموس للتحويل، يمكنك تمريرdict.getكدالة.
يعيد
pandas.Series أو pandas.DataFrame
pandas.Series أو pandas.DataFrame اعتمادًا على نوع الكائن
تحويل إلى مصفوفة NumPy متوافقة مع pandas أو إطار بيانات DataFrame، حسب ما يناسب.
حقل
< source >( *args**kwargs )
اختر حقلًا في المخطط (schema) من خلال اسم العمود أو الفهرس الرقمي.
عمود
< source >( *args**kwargs )
اختر عمودًا باسم العمود أو بالفهرس الرقمي.
مُتكرِّر على جميع الأعمدة بترتيبها العددي.
مخطط الجدول وأعمدته.
قائمة بجميع الأعمدة بالترتيب الرقمي.
عدد الأعمدة في هذه الجدول.
عدد الصفوف في هذه الجدول.
بسبب تعريف الجدول، فإن جميع الأعمدة تحتوي على نفس عدد الصفوف.
أبعاد الجدول: (#rows, #columns).
إجمالي عدد البايتات المستهلكة بواسطة عناصر الجدول.
أسماء أعمدة الجدول.
مقطع
< source >( offset = 0length = None )
احسب شريحة بدون نسخ (zero-copy) لهذه الجدولة (Table).
اختر السجلات من جدول. راجع pyarrow.compute.filter للاستخدام الكامل.
تسطيح
< source >( *args**kwargs )
Flatten هذه الجدول. يتم تسطيح كل عمود من نوع struct إلى عمود واحد لكل حقل في الهيكل. تبقى الأعمدة الأخرى دون تغيير.
combine_chunks
< source >( *args**kwargs )
أنشئ جدولاً جديداً عن طريق دمج المقاطع التي يتكون منها هذا الجدول.
تُدمج جميع المقاطع الأساسية في ChunkedArray لكل عمود في مقطع واحد أو لا شيء.
cast
< source >( *args**kwargs )
تحويل قيم الجدول إلى مخطط آخر
replace_schema_metadata
< source >( *args**kwargs ) → datasets.table.Table
تجريبي: إنشاء نسخة سطحية من الجدول عن طريق استبدال بيانات الوصف (metadata) المفتاح-القيمة للمخطط (schema) ببيانات الوصف الجديدة المحددة (والتي قد تكون None، مما يؤدي إلى حذف أي بيانات وصفية موجودة مسبقًا).
add_column
< source >( *args**kwargs ) → datasets.table.Table
إضافة عمود إلى الجدول عند الموضع المحدد.
يُعاد جدول جديد مع العمود المضاف، ويبقى كائن الجدول الأصلي دون تغيير.
append_column
< source >( *args**kwargs ) → datasets.table.Table
إضافة العمود في نهاية الأعمدة.
remove_column
< source >( *args**kwargs ) → datasets.table.Table
إنشاء جدول جديد مع إزالة العمود المحدد.
set_column
< source >( *args**kwargs ) → datasets.table.Table
استبدال العمود في الجدول عند الموضع المحدد.
إنشاء جدول جديد مع إعادة تسمية الأعمدة إلى الأسماء المُقدَّمة.
select
< source >( *args**kwargs ) → datasets.table.Table
المعاملات
يعيد
جدول جديد بالأعمدة المحددة، مع الحفاظ على البيانات الوصفية.
حدد أعمدة الجدول.
يعيد جدولًا جديدًا بالأعمدة المحددة، مع الحفاظ على البيانات الوصفية.
إسقاط
< source >( *args**kwargs ) → datasets.table.Table
احذف عمودًا واحدًا أو أكثر وعُد جدولًا جديدًا.
ConcatenationTable
تتكوّن الجدولة من دمج عدة جداول تُسمى الكتل. تتيح الدمج على المحور 0 (إضافة صفوف) والمحور 1 (إضافة أعمدة).
تُسمى الجداول الأساسية “كتل” ويمكن أن تكون كائنات من نوع InMemoryTable أو MemoryMappedTable.
هذا يتيح دمج الجداول التي تأتي من الذاكرة أو التي تكون مرسومة في الذاكرة.
عندما يُحفظ كائن ConcatenationTable باستخدام pickle، يتم حفظ كل كتلة على حدة:
- تُحفظ كائنات
InMemoryTableعبر عملية التخليل (pickling) عن طريق نسخ جميع البيانات في الذاكرة. - تُحفظ كائنات MemoryMappedTable عبر التخليل دون نسخ البيانات إلى الذاكرة. وبدلًا من ذلك، يُخلَّل المسار إلى ملف arrow المُرمَّز في الذاكرة فقط، إلى جانب قائمة التحويلات التي يجب «إعادة تشغيلها» عند إعادة تحميل الجدول من القرص.
يتطلب تنفيذها تخزين كل كتلة بشكل منفصل.
تخزن خاصية blocks قائمة من قوائم الكتل.
يجمع المحور الأول الجداول على طول المحور 0 (أي يضيف صفوفًا)،
بينما يجمع المحور الثاني الجداول على طول المحور 1 (أي يضيف أعمدة).
إذا كانت بعض الأعمدة مفقودة عند الدمج على المحور 0، يتم ملؤها بقيم فارغة.
يتم ذلك باستخدام pyarrow.concat_tables(tables, promote=True).
يمكنك الوصول إلى الجدول المدمج بالكامل عن طريق الوصول إلى خاصية ConcatenationTable.table،
والوصول إلى الكتل عن طريق الوصول إلى خاصية ConcatenationTable.blocks.
validate
< source >( *args**kwargs )
أداء فحوصات التحقق. يتم رفع استثناء إذا فشل التحقق.
بشكل افتراضي، تُنفَّذ فحوصات التحقق الرخيصة فقط. مرّر full=True لإجراء فحوصات تحقق شاملة (قد تكون O(n)).
يساوي
< source >( *args**kwargs ) → bool
المعاملات
- other (جدول) — الجدول الذي تتم المقارنة معه.
- check_metadata
bool، القيمة الافتراضيةFalse) — ما إذا كان يجب التحقق من تساوي بيانات وصفية المخطط (schema metadata) أيضًا.
يعيد
bool
تحقق مما إذا كانت محتويات جدولين متساويتين.
to_batches
< source >( *args**kwargs )
تحويل الجدول إلى قائمة من كائنات RecordBatch (متجاورة).
تحويل الجدول إلى dict أو OrderedDict.
to_pandas
< source >( *args**kwargs ) → pandas.Series or pandas.DataFrame
المعاملات
- memory_pool (
MemoryPool، القيمة الافتراضيةNone) — وحدة ذاكرة Arrow MemoryPool المستخدمة للتخصيصات. تُستخدم وحدة الذاكرة الافتراضية إذا لم يتم تمرير وحدة. - strings_to_categorical (
bool، القيمة الافتراضيةFalse) — ترميز أنواع النصوص (UTF8) والثنائية إلىpandas.Categorical. - categories (
list، الافتراضيempty) — قائمة الحقول التي يجب إرجاعها على شكلpandas.Categorical. ينطبق فقط على هياكل البيانات المشابهة للجداول. - zero_copy_only (
bool، القيمة الافتراضيةFalse) — ارفع استثناءArrowExceptionإذا كان استدعاء هذه الدالة سيتطلب نسخ البيانات الأساسية. - integer_object_nulls (
bool، القيمة الافتراضيةFalse) — تحويل الأعداد الصحيحة التي تحتوي على قيم فارغة إلى كائنات. - date_as_object (
bool، القيمة الافتراضيةTrue) — تحويل التواريخ إلى كائنات. إذا كانتFalse، يتم التحويل إلى نوعdatetime64[ns]. - timestamp_as_object (
bool، القيمة الافتراضيةFalse) — تحويل الطوابع الزمنية غير النانوثانية (np.datetime64) إلى كائنات. هذا مفيد إذا كانت لديك طوابع زمنية لا تتناسب مع نطاق التواريخ المعتاد للطوابع الزمنية النانوثانية (1678 م - 2262 م). إذا كانت القيمةFalse، يتم تحويل جميع الطوابع الزمنية إلى نوع البياناتdatetime64[ns]. - use_threads (
bool، القيمة الافتراضيةTrue) — ما إذا كان سيتم موازاة التحويل باستخدام عدة خيوط. - deduplicate_objects (
bool، القيمة الافتراضيةFalse) — لا تنشئ نسخًا متعددة من كائنات بايثون عند إنشائها، لتوفير استخدام الذاكرة. ستكون عملية التحويل أبطأ. - ignore_metadata (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، فلا تُستخدم بيانات pandas الوصفية لإعادة بناء فهرس DataFrame، إن وُجد. - safe (
bool، القيمة الافتراضيةTrue) — بالنسبة لبعض أنواع البيانات، يلزم إجراء تحويل (cast) لتخزين البيانات في إطار بيانات pandas أو سلسلة Series (على سبيل المثال، تُخزَّن الطوابع الزمنية دائمًا بالنانو ثانية في pandas). يتحكم هذا الخيار في ما إذا كان التحويل آمنًا أم لا. - split_blocks (
bool، القيمة الافتراضيةFalse) — إذا كانتTrue، يتم إنشاء كتلة داخلية واحدة لكل عمود عند إنشاء pandas.DataFrame منRecordBatchأوTable. على الرغم من أن هذا قد يقلل مؤقتًا من استهلاك الذاكرة، إلا أن عمليات pandas المختلفة قد تُطلق عملية “توحيد” (consolidation) التي قد تُفاقم استخدام الذاكرة. - self_destruct (
bool، القيمة الافتراضيةFalse) — تجريبي: إذا كانتTrue، فسيتم محاولة تحرير ذاكرة Arrow الأصلية أثناء تحويل كائن Arrow إلى pandas. إذا استخدمت الكائن بعد استدعاءto_pandasمع هذا الخيار، فسيؤدي ذلك إلى انهيار برنامجك. - types_mapper (
function، القيمة الافتراضيةNone) — دالة تُحوّل نوع pyarrow DataType إلىExtensionDtypeفي pandas. يمكن استخدام هذه الدالة لتجاوز النوع الافتراضي في pandas عند تحويل الأنواع المدمجة في pyarrow أو في حال غيابpandas_metadataفي مخطط الجدول. تستقبل الدالة نوع pyarrow DataType ومن المتوقع أن تُرجعExtensionDtypeفي pandas أوNoneإذا كان يجب استخدام التحويل الافتراضي لذلك النوع. إذا كان لديك قاموس للتحويل، يمكنك تمريرdict.getكدالة.
يعيد
pandas.Series أو pandas.DataFrame
pandas.Series أو pandas.DataFrame اعتمادًا على نوع الكائن
تحويل إلى مصفوفة NumPy متوافقة مع pandas أو إطار بيانات DataFrame، حسب ما يناسب.
حقل
< source >( *args**kwargs )
اختر حقلًا في المخطط (schema) من خلال اسم العمود أو الفهرس الرقمي.
عمود
< source >( *args**kwargs )
اختر عمودًا باسم العمود أو بالفهرس الرقمي.
مُتكرِّر على جميع الأعمدة بترتيبها العددي.
مخطط الجدول وأعمدته.
قائمة بجميع الأعمدة بالترتيب الرقمي.
عدد الأعمدة في هذه الجدول.
عدد الصفوف في هذه الجدول.
بسبب تعريف الجدول، فإن جميع الأعمدة تحتوي على نفس عدد الصفوف.
أبعاد الجدول: (#rows, #columns).
إجمالي عدد البايتات المستهلكة بواسطة عناصر الجدول.
أسماء أعمدة الجدول.
مقطع
< source >( offset = 0length = None )
احسب شريحة بدون نسخ (zero-copy) لهذه الجدولة (Table).
اختر السجلات من جدول. راجع pyarrow.compute.filter للاستخدام الكامل.
تسطيح
< source >( *args**kwargs )
Flatten هذه الجدول. يتم تسطيح كل عمود من نوع struct إلى عمود واحد لكل حقل في الهيكل. تبقى الأعمدة الأخرى دون تغيير.
combine_chunks
< source >( *args**kwargs )
أنشئ جدولاً جديداً عن طريق دمج المقاطع التي يتكون منها هذا الجدول.
تُدمج جميع المقاطع الأساسية في ChunkedArray لكل عمود في مقطع واحد أو لا شيء.
cast
< source >( target_schema*args**kwargs )
قم بتحويل قيم الجدول إلى مخطط آخر.
replace_schema_metadata
< source >( *args**kwargs ) → datasets.table.Table
تجريبي: إنشاء نسخة سطحية من الجدول عن طريق استبدال بيانات الوصف (metadata) المفتاح-القيمة للمخطط (schema) ببيانات الوصف الجديدة المحددة (والتي قد تكون None، مما يؤدي إلى حذف أي بيانات وصفية موجودة مسبقًا).
add_column
< source >( *args**kwargs ) → datasets.table.Table
إضافة عمود إلى الجدول عند الموضع المحدد.
يُعاد جدول جديد مع العمود المضاف، ويبقى كائن الجدول الأصلي دون تغيير.
append_column
< source >( *args**kwargs ) → datasets.table.Table
إضافة العمود في نهاية الأعمدة.
remove_column
< source >( i*args**kwargs ) → datasets.table.Table
إنشاء جدول جديد مع إزالة العمود المحدد.
set_column
< source >( *args**kwargs ) → datasets.table.Table
استبدال العمود في الجدول عند الموضع المحدد.
إنشاء جدول جديد مع إعادة تسمية الأعمدة إلى الأسماء المُقدَّمة.
select
< source >( columns*args**kwargs ) → datasets.table.Table
المعاملات
يعيد
جدول جديد بالأعمدة المحددة، مع الحفاظ على البيانات الوصفية.
حدد أعمدة الجدول.
يعيد جدولًا جديدًا بالأعمدة المحددة، مع الحفاظ على البيانات الوصفية.
إسقاط
< source >( columns*args**kwargs ) → datasets.table.Table
احذف عمودًا واحدًا أو أكثر وعُد جدولًا جديدًا.
from_tables
< source >( tables: listaxis: int = 0 )
أنشئ ConcatenationTable من قائمة جداول.
أدوات
datasets.table.concat_tables
< source >( tables: listaxis: int = 0 ) → datasets.table.Table
المعاملات
- tables (قائمة من
Table) — قائمة بالجداول التي سيتم دمجها. - axis (
{0, 1}, الافتراضي هو0, ، أي عبر الصفوف) — المحور الذي تتم عبره عملية الدمج، حيث0تعني عبر الصفوف (رأسياً) و1تعني عبر الأعمدة (أفقياً).أُضيف في 1.6.0
يعيد
datasets.table.Table
إذا كان عدد جداول الإدخال > 1، فإن الجدول المُعاد هو datasets.table.ConcatenationTable.
وإلا، إذا كان هناك جدول واحد فقط، يُعاد كما هو.
دمج الجداول.
datasets.table.list_table_cache_files
< source >( table: Table ) → List[str]
يعيد
List[str]
قائمة بالمسارات إلى ملفات الكاش التي حمّلها الجدول.
احصل على ملفات الكاش التي تُحمّلها الجدول. تُستخدم ملفات الكاش عندما تأتي أجزاء من الجدول من القرص عبر خرائط الذاكرة.