Python如何对DataFrame中Close列重复值对应的Volume列数据求和
实现方法
你可以直接用Pandas的分组求和功能完成统计,核心逻辑是按Close列分组后对Volume列求和,以下是完整可运行的代码:
import pandas as pd # 这里替换成你自己的原始DataFrame读取逻辑,比如从csv读取的话用pd.read_csv(xxx) # 以下是示例数据构造代码,方便你测试效果 raw_data = { "Date": [0, 1, 2, 3, 4, 5], "Close": [4420, 4420.25, 4420.5, 4420, 4420.75, 4422], "Volume": [100, 200, 300, 200, 200, 300] } df = pd.DataFrame(raw_data) # 核心统计逻辑 result_df = df.groupby("Close", as_index=False)["Volume"].sum() # 可选:把成交量列重命名更清晰 result_df = result_df.rename(columns={"Volume": "TotalVolume"}) # 输出查看结果 print(result_df)
输出结果
对应你的示例数据,运行后得到的result_df如下:
| Close | TotalVolume |
|---|---|
| 4420.00 | 300 |
| 4420.25 | 200 |
| 4420.50 | 300 |
| 4420.75 | 200 |
| 4422.00 | 300 |
注意事项
- 由于浮点运算可能存在精度误差,建议分组前先对
Close列做精度对齐,符合S&P期货0.25最小变动单位的特性:df["Close"] = df["Close"].round(2) - 如果你需要把价格作为索引使用,把
groupby方法里的as_index参数改为True即可。
内容的提问来源于stack exchange,提问作者BubbaKush
相关产品推荐
相关产品推荐

