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

Pandas如何获取每行最高成交量对应列名并新增为数据列

Pandas 新增每行最高成交量对应列名的实现方案

实现逻辑

先筛选出所有成交量类列,再逐行取成交量最大值对应的列名赋值给新列即可,核心是不要把价格、差值这类非成交量字段拉进来比较。

可直接运行的代码

# 筛出所有列名以Volume开头的成交量列,无需手动硬编码列名
volume_cols = [col for col in df_merged.columns if col.startswith('Volume')]

# 逐行取最大值对应的列名写入新列,新列名可以按需修改
df_merged['highest_vol_col'] = df_merged[volume_cols].idxmax(axis=1)

结果说明

针对你给出的样例数据,运行后新列取值完全符合预期:

  • 第0行:VolumeOIH值为300.0、VolumeKRE值为51852.0,新列返回VolumeKRE
  • 第64行:VolumeOIH值为8677.0、VolumeKRE值为11411.0,新列返回VolumeKRE
  • 所有行都会自动对比现有(及后续新增的多个)成交量列的数值,返回数值最高的列名

踩坑提醒

  • 不要直接对整个DataFrame调用idxmax(axis=1),否则会把SPY close、difference这类非成交量列纳入计算,逻辑不符合需求,碰到数值异常的行还会返回完全无关的列名。
  • 后续如果新增其他标的的成交量列,只要列名保留Volume前缀,上述代码不需要做任何修改就能自动适配,不用手动维护成交量列的名单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:57:31