创建 DataFrame:
df = pd.DataFrame(np.random.randint(0, 10, (2, 4)), columns=list('ABCD'))
1. 缺失值的处理
- 所有缺失值字段填充为 0:
df.fillna(0)
,一定要十分注意的一点是,df.fillna() 操作默认(inplace=False)不是 inplace,也即不是对原始 data frame 直接操作修改的,而是创建一个副本,对副本进行修改;- df.fillna(0, inplace=True)
- df = df.fillna(0)
- 舍弃:
- 舍弃那些全行为 NaN 的行,以及全列为 NaN 的行:
- df.dropna(axis=[0, 1], how=’all’)
- 删除某些行和列:
- df.drop([], axis=1, inplace=True) ⇒ axis = 1,删除列;
- df.drop([], axis=0, inplace=True) ⇒ axis = 0,删除行;
- 舍弃那些全行为 NaN 的行,以及全列为 NaN 的行:
-
均值填充
age_mean = data.Age.mean() # age_mean = data['Age'].mean()
data.Age[data['Age'].isnull()] = age_mean # data['Age'] == data.Age 二者是等效的