Pandas基礎——處理缺失值
阿新 • • 發佈:2019-01-31
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