如何用均值填充空值

时间:2017-08-09 06:51:18

标签: pandas replace nan

我有数据:

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()

但它并没有影响我的数据集。

什么是问题?

1 个答案:

答案 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())

另一种更通用的解决方案是使用NaNserrors='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