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

如何在pandas中计算买卖交易的累计持仓数量?

picture

Pandas 计算累计持仓的实现方法

核心逻辑

把买卖方向映射为正负系数,buy对应1(累加交易量),sell对应-1(扣减交易量),转换后直接调用cumsum()累加即可得到累计持仓。

完整代码示例

import pandas as pd

# 可替换为你自己的数据集读取代码,比如pd.read_excel/ pd.read_csv
df = pd.DataFrame({
    '数量': [3, 2, 5, 1],
    '买卖': ['buy', 'sell', 'buy', 'sell']
})

# 方式1:分步骤写,逻辑更清晰
# 1. 把交易量转为带正负的数值
df['sign_qty'] = df['数量'] * df['买卖'].map({'buy': 1, 'sell': -1})
# 2. 累加得到累计持仓
df['累计持仓'] = df['sign_qty'].cumsum()

# 方式2:一步完成,不需要生成中间列
df['累计持仓'] = (df['数量'] * df['买卖'].map({'buy': 1, 'sell': -1})).cumsum()

注意事项

如果你的数据还没有按交易时间排序,需要先调用df = df.sort_values('交易时间字段名')按时间正序排序后再做计算,才能得到正确的累计持仓序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:27:03