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

如何在pandas透视表中比较数值,筛选金牌数>银牌数>铜牌数的运动员

问题解答

透视表合理性说明

你当前使用透视表的思路完全合理,该操作已经按运动员维度聚合统计了每个人获得的金、银、铜三类奖牌的数量,是实现需求的合适方案。

具体实现步骤

你只需要补充空值处理和条件过滤两步即可完成统计:

  • 空值填充:没有获得过对应类别奖牌的运动员,在透视表中对应列会显示为缺失值NaN,需要先填充为0,避免后续比较报错,同时可以统一转为整数类型:
# 填充空值并转为整数
newdf_athletes = newdf_athletes.fillna(0).astype(int)
  • 条件过滤:直接对透视表的三列数据做布尔判断,筛选符合「金牌数>银牌数>铜牌数」的行:
# 构造过滤条件,注意列名需要和你数据中Medal字段的实际取值保持一致,如拼写、大小写等
filter_cond = (newdf_athletes['Gold'] > newdf_athletes['Silver']) & (newdf_athletes['Silver'] > newdf_athletes['Bronze'])
# 统计符合条件的运动员数量
qualified_count = len(newdf_athletes[filter_cond])
print(qualified_count)

如果你的原数据中Medal字段的取值是中文的「金牌」「银牌」「铜牌」,把代码里的列名替换成对应中文即可。

内容的提问来源于stack exchange,提问作者aurala20

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:02