खोज…


टिप्पणियों

क्या हमें गैर-प्रलेखित ffill और bfill शामिल करना चाहिए?

लापता मूल्यों को भरना

In [11]: df = pd.DataFrame([[1, 2, None, 3], [4, None, 5, 6], 
                            [7, 8, 9, 10], [None, None, None, None]])

Out[11]: 
     0    1    2     3
0  1.0  2.0  NaN   3.0
1  4.0  NaN  5.0   6.0
2  7.0  8.0  9.0  10.0
3  NaN  NaN  NaN   NaN

एक मान के साथ लापता मान भरें:

In [12]: df.fillna(0)
Out[12]: 
     0    1    2     3
0  1.0  2.0  0.0   3.0
1  4.0  0.0  5.0   6.0
2  7.0  8.0  9.0  10.0
3  0.0  0.0  0.0   0.0   

यह एक नया DataFrame लौटाता है। यदि आप मूल DataFrame को बदलना चाहते हैं, तो या तो inplace पैरामीटर का उपयोग करें ( df.fillna(0, inplace=True) ) या इसे वापस मूल DataFrame ( df = df.fillna(0) ) में df = df.fillna(0)

पिछले वाले लापता मान भरें:

In [13]: df.fillna(method='pad')  # this is equivalent to both method='ffill' and .ffill()
Out[13]: 
     0    1    2     3
0  1.0  2.0  NaN   3.0
1  4.0  2.0  5.0   6.0
2  7.0  8.0  9.0  10.0
3  7.0  8.0  9.0  10.0

अगले लोगों के साथ भरें:

In [14]: df.fillna(method='bfill')  # this is equivalent to .bfill()
Out[14]: 
     0    1    2     3
0  1.0  2.0  5.0   3.0
1  4.0  8.0  5.0   6.0
2  7.0  8.0  9.0  10.0
3  NaN  NaN  NaN   NaN

एक और डेटाफ़्रेम का उपयोग करके भरें:

In [15]: df2 = pd.DataFrame(np.arange(100, 116).reshape(4, 4))
         df2
Out[15]: 
     0    1    2    3
0  100  101  102  103
1  104  105  106  107
2  108  109  110  111
3  112  113  114  115

In [16]: df.fillna(df2) #  takes the corresponding cells in df2 to fill df
Out[16]: 
       0      1      2      3
0    1.0    2.0  102.0    3.0
1    4.0  105.0    5.0    6.0
2    7.0    8.0    9.0   10.0
3  112.0  113.0  114.0  115.0

लापता मूल्यों को गिराना

जब एक DataFrame None बनाता है (अजगर का लापता मूल्य) NaN (पांडा के लापता मूल्य) में बदल जाता है:

In [11]: df = pd.DataFrame([[1, 2, None, 3], [4, None, 5, 6], 
                            [7, 8, 9, 10], [None, None, None, None]])

Out[11]: 
     0    1    2     3
0  1.0  2.0  NaN   3.0
1  4.0  NaN  5.0   6.0
2  7.0  8.0  9.0  10.0
3  NaN  NaN  NaN   NaN

कम से कम एक कॉलम में एक लापता मान होने पर पंक्तियों को छोड़ दें

In [12]: df.dropna()
Out[12]:
     0    1    2     3
2  7.0  8.0  9.0  10.0

यह एक नया DataFrame लौटाता है। यदि आप मूल DataFrame को बदलना चाहते हैं, तो या तो inplace पैरामीटर का उपयोग करें ( df.dropna(inplace=True) ) या इसे वापस मूल DataFrame ( df = df.dropna() ) में df = df.dropna()

पंक्तियों को छोड़ दें यदि उस पंक्ति के सभी मान गायब हैं

In [13]: df.dropna(how='all')
Out[13]: 
     0    1    2     3
0  1.0  2.0  NaN   3.0
1  4.0  NaN  5.0   6.0
2  7.0  8.0  9.0  10.0

ड्रॉप कॉलम जिसमें कम से कम 3 गैर-लापता मान नहीं हैं

In [14]: df.dropna(axis=1, thresh=3)
Out[14]: 
     0     3
0  1.0   3.0
1  4.0   6.0
2  7.0  10.0
3  NaN   NaN

प्रक्षेप

import pandas as pd
import numpy as np

df = pd.DataFrame({'A':[1,2,np.nan,3,np.nan],
                   'B':[1.2,7,3,0,8]})

df['C'] = df.A.interpolate()
df['D'] = df.A.interpolate(method='spline', order=1)

print (df)
     A    B    C         D
0  1.0  1.2  1.0  1.000000
1  2.0  7.0  2.0  2.000000
2  NaN  3.0  2.5  2.428571
3  3.0  0.0  3.0  3.000000
4  NaN  8.0  3.0  3.714286

लापता मूल्यों के लिए जाँच कर रहा है

यह जांचने के लिए कि मान NaN है या नहीं, isnull() या notnull() फ़ंक्शन का उपयोग किया जा सकता है।

In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: ser = pd.Series([1, 2, np.nan, 4])
In [4]: pd.isnull(ser)
Out[4]: 
0    False
1    False
2     True
3    False
dtype: bool   

ध्यान दें कि np.nan == np.nan रिटर्न गलत है, इसलिए आपको np.nan से तुलना करने से बचना चाहिए:

In [5]: ser == np.nan
Out[5]: 
0    False
1    False
2    False
3    False
dtype: bool

दोनों फ़ंक्शन को श्रृंखला और डेटाफ़्रेम पर विधियों के रूप में भी परिभाषित किया गया है।

In [6]: ser.isnull()
Out[6]: 
0    False
1    False
2     True
3    False
dtype: bool

डेटाफ्रेम पर परीक्षण:

In [7]: df = pd.DataFrame({'A': [1, np.nan, 3], 'B': [np.nan, 5, 6]})
In [8]: print(df)
Out[8]: 
     A    B
0  1.0  NaN
1  NaN  5.0
2  3.0  6.0    

In [9]: df.isnull()  # If the value is NaN, returns True.
Out[9]: 
       A      B
0  False   True
1   True  False
2  False  False

In [10]: df.notnull()  # Opposite of .isnull(). If the value is not NaN, returns True.
Out[10]: 
       A      B
0   True  False
1  False   True
2   True   True


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow