You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas按国家分组的taster_name最高频次值填充缺失值?

按国家用频次最高的品酒师填充缺失值

我来帮你搞定这个问题!你想要根据缺失值所属国家,用该国出现频次最高的taster_name填充缺失值,用Pandas就能轻松实现,具体步骤如下:

1. 生成每个国家对应的高频品酒师映射表

首先我们需要先统计每个国家里出现次数最多的品酒师名字,这里可以通过分组后结合value_counts来获取:

# 计算每个国家频次最高的taster_name,同时处理全缺失的国家
country_top_taster = wine.groupby('country')['taster_name'].agg(
    lambda x: x.value_counts().index[0] if not x.value_counts().empty else 'Unknown'
)

这里加了个判断if not x.value_counts().empty是为了处理某个国家所有taster_name都缺失的极端情况,避免报错,这种情况我们统一填充'Unknown',你也可以换成自己需要的默认值。

2. 用映射表填充缺失值

接下来就可以用上面生成的映射表,把每个国家对应的高频品酒师填充到该国家的缺失值里:

# 填充taster_name的缺失值
wine['taster_name'] = wine['taster_name'].fillna(wine['country'].map(country_top_taster))

map()方法会根据每行的country去匹配country_top_taster里对应的品酒师名字,再通过fillna()替换掉原来的缺失值。

验证效果

你可以用之前的代码再次查看统计结果,或者直接检查填充后的缺失情况:

# 查看各国家品酒师的频次统计
print(wine[['country','taster_name']].groupby('country').taster_name.value_counts())
# 检查是否还有剩余缺失值
print(wine['taster_name'].isna().sum())

内容的提问来源于stack exchange,提问作者Evan.Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:40:45