Pandas: إنشاء إطار البيانات: تحديد أنواع البيانات باستخدام القاموس

تم إنشاؤها على ١٨ يناير ٢٠١٥  ·  3تعليقات  ·  مصدر: pandas-dev/pandas

نأسف إذا تم اقتراح هذه الميزة من قبل. تسمح العديد من وظائف الإدخال / الإخراج (على سبيل المثال read_csv ) باستخدامها لتحديد تنسيق كل عمود بسهولة باستخدام قاموس. بقدر ما أفهم ، هذا ليس كذلك
ممكن مع بناء إطار البيانات العادي ، على سبيل المثال:

df = pd.DataFrame(data=data, columns=columns, dtypes={'colname1': str, 'colname2': np.int})

والأفضل من ذلك ، سيكون من الرائع إذا كان بإمكان المرء تغيير dtypes لأعمدة إطار البيانات باستخدام إنشاء مماثل ، على سبيل المثال:

df.change_types({'colname1': str, 'colname2': np.int})

هل أي شيء من هذا القبيل مخطط له بالفعل؟

API Design Dtypes Duplicate Reshaping

التعليق الأكثر فائدة

تعمل هذه الطريقة في الواقع:
data_df = data_df.astype ( dtype = {"wheel_number": "int64"، "car_name": "object"، "minutes_spent": "float64"})

ال 3 كومينتر

انظر # 9133 و # 4464 الأمر ليس بهذه الصعوبة
تريد أن تعطي المحاولة؟

تعمل هذه الطريقة في الواقع:
data_df = data_df.astype ( dtype = {"wheel_number": "int64"، "car_name": "object"، "minutes_spent": "float64"})

اختلاف واحد بين read_csv( csvFile, dtype={..} ) و df.astpye(dtype={..} ) :
في حالة read_csv ، لا بأس إذا احتوت الدكتات الموفرة على المزيد من الأعمدة غير الموجودة في ملف csv ، فسيتم تجاهلها بأمان. في حالة astype() ، تظهر أخطاء إذا كانت جميع الأعمدة المحددة غير موجودة في البيانات.

يجب أن يكون مثل read_csv. لأنه يمكن أن يكون لدينا ديكتات واردة قد تحتوي على بعض الأعمدة وليس غيرها. الآن هذا هو الحل الذي يجب أن أفعله:

df = pd.DataFrame( incoming_data )
gtfs_dtypes = { ... } # my master dtypes dict, having all possible column names
gtfs_dtypes_specific = { x:gtfs_dtypes.get(x,'str') for x in df.columns.tolist() }
df = df.astype(dtype=gtfs_dtypes_specific)
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات