【发布时间】:2020-11-17 14:13:14
【问题描述】:
我有一个包含交易日志的数据框。我的问题是我没有任何 ID 来匹配股票的买卖。股票可以交易多次,我希望有一个 ID 来匹配每笔已完成的交易。 我的原始数据框是带有时间戳的顺序时间序列数据框。下面的例子说明了我的问题,我需要按顺序匹配和 ID 交易的股票。 非常简单的例子:
df1 = pd.DataFrame({'stock': ['A', 'B', 'C', 'A','C', 'A', 'A'],
'deal': ['buy', 'buy', 'buy', 'sell','sell', 'buy', 'sell']})
df1
Out[84]:
stock deal
0 A buy
1 B buy
2 C buy
3 A sell
4 C sell
5 A buy
6 A sell
这是我想要的输出:
df1 = pd.DataFrame({'stock': ['A', 'B', 'C', 'A','C', 'A', 'A'],
'deal': ['buy', 'buy', 'buy', 'sell','sell', 'buy', 'sell'],
'ID': [1, 2, 3, 1,3, 4, 4]})
df1
Out[82]:
stock deal ID
0 A buy 1
1 B buy 2
2 C buy 3
3 A sell 1
4 C sell 3
5 A buy 4
6 A sell 4
有什么想法吗?
【问题讨论】:
-
没有数量,这是一个徒劳的目标。例如,今天可以买入股票 A,明天再买入,然后在第三天全部卖出。或者在再次买入之前卖出一半的头寸。或者可以通过卖空开仓。
-
这只是一个简化的例子,原始的 df 包含你提到的内容。我已经涵盖了。不过评论很好!
-
那么您可能应该根据累积数量何时达到零来确定您的标识符。
-
您能否添加一个示例作为答案,不确定我是否关注..很高兴投票
-
我可以稍后再添加一个。