ماذا تفعل عندما لا يتعرف الباندا على سلسلة البيانات NA / ND كقيمة مفقودة

2018 12 年 月 日 5

قيم مفقودة في الباندا

في مجموعات البيانات التجريبية ، يمكن استكمال الفراغات بـ NA أو NA (لم يتم تحليلها) أو ND أو ND (لم يتم اكتشافها). في الباندا ، يتم التعرف على NA و ND على أنهما مجرد سلسلة أحرف (كائن) ، لذلك لا يمكن معالجة القيم المفقودة على دفعات باستخدام دالات dropna () و fillna () و isnull () كما هي. ..

يتم التعرف على القيم التالية كقيم مفقودة في الباندا:

  • نان
  • بدون اضاءة
  • np. نان
  • الرياضيات .نان

يجب تحويل السلاسل NA و ND إلى واحدة مما سبق.

تجهيز NA و ND

إنشاء بيانات نموذجية بما في ذلك NA و ND و NaN.

في [1]: import numpy as np import pandas as pd df = pd.DataFrame ({'A': [1، 'ND'، ​​2، 3]، 'B': [4، 'NA'، 5، 6 ]، 'C': [7، 'ND'، ​​None، np.nan]}) خرج [1] ABC 0 1 4 7 1 ND NA ND 2 2 5 NaN 3 3 5 NaN

لايتم التعرف على ne و np.nan وحسابهما كقيم مفقودة ، لكن ND و NA خطأ.
isnull (): إرجاع True إذا كانت القيمة مفقودة
isnull.sum (): تجميع القيم المفقودة

في [2]: df.isnull () Out [2]: ABC 0 False False 1 False False 2 False False True 3 False False True فى [3]: df.isnull (). Sum () Out [3] : أ 0 ب 0 ج 2 النوع: int64

استبدل ND السلسلة بوظيفة الاستبدال

في [4]: ​​df = df.replace ('ND'، ​​np.nan) إخراج [4]: ​​A B C 0 1 4 7 1 NaN NA NaN 2 2 5 NaN 3 3 5 NaN

يمكن الآن تطبيق isnull () و fillna ().

في [5]: df.isnull () Out [5]: ABC 0 False False 1 True False True 2 False False True 3 False False True In [6]: df.isnull (). Sum () Out [6] : A 2 B 0 C 2 dtype: int64 In [7]: df.fillna (10) Out [7]: ABC 0 1 4 7 1 10 NA 10 2 2 5 10 3 3 5 10