Data Science

إتقان تحويل أنواع البيانات في Pandas

Spread the love

Pandas مكتبة قوية في بايثون لمعالجة البيانات وتحليلها. إدارة أنواع البيانات أمر بالغ الأهمية لمعالجة البيانات بكفاءة. تستعرض هذه المقالة طرقًا مختلفة لتغيير أنواع بيانات الأعمدة بشكل فعال في جداول بيانات Pandas الخاصة بك.

محتويات الجدول

1. التحويل إلى أنواع عددية باستخدام pd.to_numeric()

تُعد دالة pd.to_numeric() مثالية لتحويل الأعمدة إلى أنواع بيانات عددية (int، float). إنها مفيدة بشكل خاص عند التعامل مع الأعمدة التي تحتوي على تمثيلات نصية للأرقام، والتي غالبًا ما تُصادف عند استيراد البيانات.


import pandas as pd

data = {'col1': ['1', '2', '3', '4', '5'], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)

df['col1'] = pd.to_numeric(df['col1'])
print(df.dtypes)

تدير معلمة errors كيفية التعامل مع الأخطاء:

  • 'coerce': تصبح القيم غير الصالحة NaN.
  • 'raise': يثير استثناءً للقيم غير الصالحة.
  • 'ignore': يتجاهل القيم غير الصالحة.

data = {'col1': ['1', '2', 'a', '4', '5']}
df = pd.DataFrame(data)
df['col1'] = pd.to_numeric(df['col1'], errors='coerce')
print(df)

2. تحويل الأنواع المرن باستخدام astype()

توفر طريقة astype() نهجًا عامًا لتغيير أنواع البيانات. يمكنك التحويل إلى أي نوع مدعوم تقريبًا (int، float، str، bool، datetime، إلخ).


data = {'col1': [1, 2, 3, 4, 5], 'col2': [True, False, True, False, True]}
df = pd.DataFrame(data)

df['col1'] = df['col1'].astype(str)
df['col2'] = df['col2'].astype(int)
print(df.dtypes)

تحذير: قد يؤدي تحويل النوع إلى فقدان البيانات (مثل، اقتطاع الكسور العشرية عند تحويل float إلى int).

3. الاستنتاج الذكي للنوع باستخدام infer_objects()

تُعد طريقة infer_objects() مفيدة لجداول البيانات التي تحتوي على أنواع بيانات مختلطة في أعمدة “object”. إنها تحاول استنتاج النوع الأنسب لكل عمود.


data = {'col1': ['1', 2, '3.14', 4], 'col2': ['A', 'B', 'C', 'D']}
df = pd.DataFrame(data)
df = df.infer_objects()
print(df.dtypes)

ملاحظة: قد تمنع البيانات غير المتسقة الاستنتاج الناجح للنوع.

4. أفضل الممارسات لتحويل نوع البيانات

افحص بياناتك دائمًا قبل وبعد التحويل للتحقق من التغييرات وتجنب النتائج غير المتوقعة. ضع في اعتبارك استخدام طريقة .info() للتحقق من أنواع البيانات والقيم المفقودة. تعامل مع الأخطاء المحتملة بلطف باستخدام معلمة errors في pd.to_numeric() أو عن طريق معالجة بياناتك مسبقًا لإزالة أو استبدال القيم التي تسبب المشاكل.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *