أهلا،
أدخلت الباندا مؤخرًا نوع Dtype صحيحًا:
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html
أتوقع أن يقوم numpy بتحويل هذه المصفوفات تلقائيًا إلى نوع عائم وملء np.nan. ومع ذلك ، فإنه يحولها إلى اعتراض لسبب ما:
pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values.dtype
مما يؤدي إلى أخطاء مثل هذه
np.nanmax(pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values)
إرجاع "TypeError: القيمة المنطقية لـ NA غامضة"
هل هذا متوقع؟
هل هذا متوقع؟
أود أن أقول نعم ، لأن الأعداد الصحيحة الفارغة ليست من نوع NumPy.
أوافق ، هذا في الأساس عن طريق التصميم ويعني أن الأشياء تعمل كما هو متوقع. ليس من المستحيل أن يفهم NumPy هذا في مرحلة ما ، لكن من غير المحتمل أن يحدث قريبًا.
باستخدام UInt8
، فأنت تختار أن NaN
ليس مثل NA ، والباندا لديها pd.NA
الآن لجعل هذا التمييز أكثر وضوحًا.
@ Kreol64 فتحت pandas # 37460 لمناقشة هذا في جانب الباندا