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

如何基于DataFrame计算每日High-Low差值生成新DataFrame

计算DataFrame每日High与Low的差值生成Volume列

不需要额外做连接操作,用透视或者分组转置的方法就能快速实现,下面是两种实用方案:

方法一:使用pivot透视表

将原数据按Date作为索引,Metric转为列,这样同一日期的High和Low会处于同一行,直接相减即可得到Volume:

import pandas as pd

# 假设你的原始DataFrame名为df
# 第一步:透视数据,把Metric转成列
pivot_df = df.pivot(index='Date', columns='Metric', values='Value')
# 第二步:计算High-Low得到Volume,只保留需要的列
volume_df = pivot_df.assign(Volume=pivot_df['High'] - pivot_df['Low'])[['Volume']].reset_index()
# 可选:将Volume格式化为两位小数
volume_df['Volume'] = volume_df['Volume'].round(2)

方法二:使用groupby+unstack

通过分组后转置,同样能实现同一日期的Metric值对齐,再计算差值:

import pandas as pd

# 按日期和指标分组,转置后让同一日期的指标成为列
grouped_df = df.groupby(['Date', 'Metric'])['Value'].first().unstack()
# 逐行计算High-Low,生成新的Volume列
volume_df = grouped_df.apply(lambda row: row['High'] - row['Low'], axis=1).reset_index(name='Volume')
# 可选:格式化小数位数
volume_df['Volume'] = volume_df['Volume'].round(2)

最终得到的volume_df结构如下:

Date Volume
2020-01-01 2.00
2020-01-02 6.45

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:10:36