如何在 Python Pandas 数据集中使用 Mode 填充 NaN 值



在我的数据集(traintest(中,某些记录max_floor值为空。我正在尝试用共享相同公寓名称的公寓的max_floor值模式填充空值:

for t in full.apartment_name.unique():
    for df in frames:
        df['max_floor'].fillna((df.loc[df["apartment_name"]==t,   
         'max_floor']).mode, inplace=True)

full在哪里train.append(test)df[train,test]

运行上面的代码没有给我预期的结果。上面的代码运行良好,但使用以下文本填充所有max_floor null 值:

bound method Series.mode of 0        NaN
1084     NaN
23278    9.0
Name: max_floor, dtype: float64

我只是想用max_floor值替换上面的文本。任何帮助将不胜感激。

mode()是一个函数,你已经引用了它,但没有调用它。

mode更改为mode()

您需要

访问mode()结果中的第一个值。例如:

   A    B
0  1  3.0
1  2  NaN
2  2  NaN
3  3  NaN

用列A的模式填充缺失的值:

df.fillna(df['A'].mode()[0])

输出:

   A    B
0  1  3.0
1  2  2.0
2  2  2.0
3  3  2.0

最新更新