繁体   English   中英

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

[英]How to fill the NaN values with Mode in Python Pandas dataset?

在我的数据集( 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)

其中fulltrain.append(test)df[train,test]

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM