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

如何使用Pandas计算多列中High-Low差值的按索引均值?

用Pandas实现按索引计算High与Low差值均值的方法

当然可以用Pandas轻松搞定这个需求!我来给你拆解一下具体怎么做,根据你的DataFrame结构不同,有几种常见的实现方式:

情况1:DataFrame含High和Low列,按索引分组计算差值均值

假设你的DataFrame是时间序列类的,索引是日期,每一行对应一天的High和Low数据,结构大概是这样:

High  Low
2023-01-01  100   95
2023-01-02  102   97
2023-02-01  105   99
2023-02-02  107   101

如果要按月份(索引的月份维度)分组,计算每个月内每日High-Low差值的均值,步骤如下:

  • 先计算每行的High与Low的差值,生成新列:
    df['diff'] = df['High'] - df['Low']
    
  • 按索引分组并计算均值:
    # 若索引是datetime类型,按月份分组
    monthly_mean_diff = df['diff'].groupby(df.index.month).mean()
    
    # 若索引是自定义分组键,直接按索引分组
    mean_diff_by_index = df['diff'].groupby(df.index).mean()
    

情况2:索引是High/Low标识,每列对应不同变量

如果你的DataFrame索引是High或Low,每一列对应一个资产/变量,结构类似这样:

AssetA  AssetB
High    150     200
Low     140     185
High    155     210
Low     142     190

要计算每一列中High与Low的差值均值,可以这么做:

  • 先按索引分组,计算每组(High组、Low组)的均值:
    grouped = df.groupby(df.index).mean()
    
  • 再用High组的均值减去Low组的均值,得到每列的差值均值:
    col_mean_diff = grouped.loc['High'] - grouped.loc['Low']
    

通用简化写法

如果你的需求是直接计算所有行的High-Low差值的整体均值,或者按索引分组后的每个分组的差值均值,还可以用更简洁的写法:

# 计算所有行的High-Low差值的整体均值
overall_mean_diff = (df['High'] - df['Low']).mean()

# 按索引分组,计算每个分组的差值均值
mean_diff_per_index = (df['High'] - df['Low']).groupby(df.index).mean()

这些方法都能完美实现你的需求,你可以根据自己的DataFrame结构选对应的代码就行~

内容的提问来源于stack exchange,提问作者이승훈

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:11:03