首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas DF用字典平均值替换none值

Pandas DF用字典平均值替换none值
EN

Stack Overflow用户
提问于 2021-01-19 03:50:01
回答 1查看 18关注 0票数 0

我有一本熊猫df和一套字典。我正在尝试创建一个新列,该列的行索引处的值与字典中的值相同,如果该值不在字典中,则用整个字典的平均值替换该输入。

目前,我的代码如下所示:

代码语言:javascript
复制
df_test["course_mean_time"] = df_test["Course"].apply(lambda x: Course_dict.get(x))
df_test.course_mean_time.fillna(mean(Course_dict[k] for k in Course_dict), inplace=True)
df_test['Horse_mean_time'] = df_test["Horse"].apply(lambda x: Horse_dict.get(x))
df_test.Horse_mean_time.fillna(mean(Horse_dict[k] for k in Horse_dict), inplace=True)
df_test['Dist_mean_time'] = df_test['Dist_M'].apply(lambda x: Dist_dict.get(x))
df_test.Dist_mean_time.fillna(mean(Dist_dict[k] for k in Dist_dict), inplace=True)
df_test['Jockey_mean_time'] = df_test['Jockey'].apply(lambda x: Jockey_dict.get(x))
df_test.Jockey_mean_time.fillna(mean(Jockey_dict[k] for k in Jockey_dict), inplace=True)

course_mean_time代码可以正常工作,但是此后的所有代码都将None值替换为NaN值,而不是字典的平均值。我知道字典中有值,而且调用正确,所以我不知道为什么会发生这种情况。以上代码的输出如下所示:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-19 05:56:50

我已经意识到我的错误所在。代码,

代码语言:javascript
复制
mean(Course_dict[k] for k in Course_dict)

例如,返回一个NaN值。我找到的解决方案是使用:

代码语言:javascript
复制
Series([Course_dict[k] for k in Course_dict]).mean()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65781206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档