使用Pandas求多个Series均值的最大值并返回对应Series名称
更优雅的实现方式:摆脱硬编码,灵活获取均值最大的列
嘿,我太懂硬编码带来的尴尬了——现在只有三列还好,要是以后数据集里新增了别的运动项目列,你就得反复修改max()参数和一堆if-elif判断,简直是给自己挖坑。给你个更灵活的解决方案:
实现思路
- 把需要计算均值的目标列放进一个列表(后续改需求只动这里就行)
- 对这些列批量计算均值,得到一个以列名为索引、均值为值的Series
- 直接用
idxmax()方法一键获取均值最大对应的列名
代码示例
# 定义要处理的目标列列表,以后加新列直接往这里加 target_columns = ['Cycle (seconds)', 'Run (seconds)', 'Swim (seconds)'] # 批量计算指定列的均值 column_means = DataTD[target_columns].mean() # 获取均值最大的列名 max_mean_column_name = column_means.idxmax() print(max_mean_column_name)
这个方法的优势
- 可扩展性拉满:如果后续新增
Walk (seconds)这类列,只需要把它加到target_columns里,剩下的代码完全不用改 - 代码更简洁:省去了重复的
DataTD['XXX'].mean()调用和冗长的条件判断 - 可读性更高:逻辑一目了然,以后维护自己或者别人的代码都更轻松
内容的提问来源于stack exchange,提问作者Kumkuat
相关产品推荐
相关产品推荐

