1. 程式人生 > >Pandas基礎——處理缺失值

Pandas基礎——處理缺失值

pandas處理丟失資料

import pandas as pd
import numpy as np
dates=pd.date_range('20180101',periods=4)
df=pd.DataFrame(np.arange(16).reshape((4,4)),index=dates,columns=['A','B','C','D'])
df.iloc[0,1]=np.nan
df.iloc[1,2]=np.nan
print(df)

輸出:

             A     B     C   D
2018-01-01   0   NaN   2.0   3
2018-01-02   4
5.0 NaN 7 2018-01-03 8 9.0 10.0 11 2018-01-04 12 13.0 14.0 15

(1)pd.dropna():直接去掉帶有缺失值的行和列

df.dropna(axis=0,how='any')      #axis=0對行進行操作,1對列進行操作;‘any’只要存在NaN就drop,‘all’表示全部是NaN則drop

輸出:

             A     B     C   D
2018-01-03   8   9.0  10.0  11
2018-01-04  12  13.0  14.0  15

(2)pd.fillna():用其他值代替

df.fillna(value=0)

輸出:

             A     B     C   D
2018-01-01   0   0.0   2.0   3
2018-01-02   4   5.0   0.0   7
2018-01-03   8   9.0  10.0  11
2018-01-04  12  13.0  14.0  15

(3)pd.isnull():判斷是否為空

df.isnull()

輸出:

                A      B      C      D
2018-01-01  False   True  False  False
2018-01-02  False  False
True False 2018-01-03 False False False False 2018-01-04 False False False False

判斷是否有NaN:

np.any(df.isnull())==True

輸出

True