[英]How to fill the NaN values with Mode in Python Pandas dataset?
在我的数据集( train
、 test
)中,某些记录的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
空值:
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.