Pandas مكتبة قوية في بايثون لمعالجة البيانات وتحليلها. إدارة أنواع البيانات أمر بالغ الأهمية لمعالجة البيانات بكفاءة. تستعرض هذه المقالة طرقًا مختلفة لتغيير أنواع بيانات الأعمدة بشكل فعال في جداول بيانات Pandas الخاصة بك.
محتويات الجدول
- التحويل إلى أنواع عددية باستخدام
pd.to_numeric()
- تحويل الأنواع المرن باستخدام
astype()
- الاستنتاج الذكي للنوع باستخدام
infer_objects()
- أفضل الممارسات لتحويل نوع البيانات
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()
أو عن طريق معالجة بياناتك مسبقًا لإزالة أو استبدال القيم التي تسبب المشاكل.