我有数据:
print (df)
Sex Age SbSp Parch
0 male 22 1 0
1 female 38 1 0
2 female NAN 0 0
有一些NAN值。我想填写平均值。
我确实使用了
df1 = df["Age"].fillna(value=df["Age"].mean()
但它并没有影响我的数据集。
什么是问题?
答案 0 :(得分:2)
我认为问题NAN
不是np.nan
值(缺失),而是字符串NAN
。所以需要replace
然后转换为float
:
df['Age'] = df['Age'].replace({'NAN':np.nan}).astype(float)
df["Age"] = df["Age"].fillna(value=df["Age"].mean())
另一种更通用的解决方案是使用NaNs
将errors='coerce'
转换为df['Age'] = pd.to_numeric(df['Age'], errors='coerce')
df["Age"] = df["Age"].fillna(value=df["Age"].mean())
print (df)
Sex Age SbSp Parch
0 male 22.0 1 0
1 female 38.0 1 0
2 female 30.0 0 0
:
na_values
如果使用read_csv将参数NAN
添加到np.nan
转换为df = pd.read_csv(file, na_values='NAN')
:
switch