gpt4 book ai didi

python - 如何用python中DataFrame列的模式替换NA值?

转载 作者:太空狗 更新时间:2023-10-29 22:21:19 28 4
gpt4 key购买 nike

我对 Python(和本网站)完全陌生,目前正在尝试用它们的模式替换特定数据框列中的 NA 值。我尝试了各种无效的方法。请帮我找出我做错了什么:

注意:我使用的所有列都是 float64 类型。我的所有代码都运行了,但是当我在列中使用 df[cols_mode].isnull().sum() 检查空值时,它保持不变。

方法一:

cols_mode = ['race', 'goal', 'date', 'go_out', 'career_c']

df[cols_mode].apply(lambda x: x.fillna(x.mode, inplace=True))

我也尝试了Imputer方法,但遇到了同样的结果

方法二:

for column in df[['race', 'goal', 'date', 'go_out', 'career_c']]:
mode = df[column].mode()
df[column] = df[column].fillna(mode)

方法三:

df['race'].fillna(df.race.mode(), inplace=True)
df['goal'].fillna(df.goal.mode(), inplace=True)
df['date'].fillna(df.date.mode(), inplace=True)
df['go_out'].fillna(df.go_out.mode(), inplace=True)
df['career_c'].fillna(df.career_c.mode(), inplace=True)

方法四:我的方法越来越成为一个手动过程,最后这个方法起作用了:

df['race'].fillna(2.0, inplace=True)
df['goal'].fillna(1.0, inplace=True)
df['date'].fillna(6.0, inplace=True)
df['go_out'].fillna(2.0, inplace=True)
df['career_c'].fillna(2.0, inplace=True)

最佳答案

mode 返回一个 Series,因此在替换 DataFrame 中的 NaN 值之前,您仍然需要访问所需的行。

for column in ['race', 'goal', 'date', 'go_out', 'career_c']:
df[column].fillna(df[column].mode()[0], inplace=True)

如果你想将它应用到DataFrame的所有列,那么:

for column in df.columns:
df[column].fillna(df[column].mode()[0], inplace=True)

关于python - 如何用python中DataFrame列的模式替换NA值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40619445/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com