Pandas DataFrame缺失值的查詢與填充
阿新 • • 發佈:2018-12-11
檢視DataFrame中每一列是否存在空值:
temp = data.isnull().any() #列中是否存在空值
print(type(temp))
print(temp)
結果如下,返回結果型別是Series,列中不存在空值則對應值為False:
<class 'pandas.core.series.Series'> eventid False iyear False imonth False iday False approxdate True extended False resolution True ... Length: 135, dtype: bool
列數太多,可以將Series轉化為DataFrame不存在空值的列:
colnull=pd.DataFrame(data={'colname': temp.index,'isnulls':temp.values})
#print(colnull.head())
#不存在空值的列名
print(colnull.loc[colnull.isnulls==False,'colname'])
結果如下:
0 eventid 1 iyear 2 imonth 3 iday ... Name: colname, dtype: object
如下取出某一列(nkill)存在空值的記錄,返回一個DataFrame:
data[data.nkill.isnull()]
缺失值填充,inplace值為真代表直接在原DataFrame上進行操作:
data['doubtterr'].fillna(0, inplace=True)
data['propvalue'].fillna(data['propvalue'].median(),inplace=True)