我有一个包含多列的 python pandas 数据框,其中一列有 0
值。我想用本列的 median
或 mean
替换 0
值。
data
是我的数据框
artist_hotness
是列
mean_artist_hotness = data['artist_hotness'].dropna().mean()
if len(data.artist_hotness[ data.artist_hotness.isnull() ]) > 0:
data.artist_hotness.loc[ (data.artist_hotness.isnull()), 'artist_hotness'] = mean_artist_hotness
我试过了,但没有用。
原文由 jeangelj 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想你可以使用
mask
并添加参数skipna=True
到mean
代替dropna
Also need change condition todata.artist_hotness == 0
if need replace0
values ordata.artist_hotness.isnull()
if need replaceNaN
values:或者使用
loc
,但省略列名:另一个解决方案是
DataFrame.replace
指定列:或者,如果需要替换所有列中的所有
0
值:如果需要替换
NaN
在所有列中使用DataFrame.fillna
:但如果仅在某些列中使用
Series.fillna
: