1. 程式人生 > >Pandas DataFrame缺失值的查詢與填充

Pandas DataFrame缺失值的查詢與填充

檢視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)