处理nan的一些方法:
1. drop掉出现na的行或者列
1) drop行 axis = 0; drop列 axis =1
2) 如果出现一个nan就drop how = 'any' ; 全是NAN才drop how = 'all'
2. 用固定值或者均值去填充df 或者 df的某一列
1)df.fillna(value=0)
2) df['Age'].fillna((df['Age'].mean()),inplace = True)
3. 寻找nan出现的地方 df.isnull
import pandas as pd import numpy as np dates = pd.date_range('20130101',periods=6) # index 有6 columns 有4 所以要reshape(6,4) df = pd.DataFrame(np.arange(24).reshape((6,4)) , index = dates,columns= ['A','B','C','D']) df.iloc[0,1] = np.nan df.iloc[1,2] = np.nan # 1. dropna axis = 0 如果某一行中存在nan(any)或者全是nan(all) 就把这一行丢掉 print(df.dropna(axis=0,how = 'any')) # how = 'any' or 'all' # 2. fillna 给 nan 填上 0 print(df.fillna(value=0)) # 用某列的平均值来填充某列中的nan train_df['age'].fillna((train_df['age'].mean()), inplace=True) # 3. isnull 打印哪些地方有nan print(df.isnull()) # A B C D # 2013-01-01 False True False False # 2013-01-02 False False True False # 2013-01-03 False False False False # 2013-01-04 False False False False # 2013-01-05 False False False False # 2013-01-06 False False False False print(np.any(df.isnull())==True) #True