我正在尝试分析和组织交易历史记录文件。
我正在尝试将每3或4行具有相同类型的行汇总在一起:如果买入或卖出彼此紧随其后,则将它们合并在一起。如果没有,我只想排一行。
如您在下面的例子中看到的那样,这些多买交易将我希望它们汇总到一行,然后再进行另一行卖出交易。
在新的df中加上交易的总价格和金额。
CSV的链接:https://drive.google.com/file/d/1GoDRdI7G8uJzuLoFrm5InbDg23mAwW6o/view?usp=sharing
答案 0 :(得分:1)
您可以使用它来获得所需的结果。当前一个值不等于当前值时,我正在使用累积和。
dictionary = { "BUY": 1, "SELL": 0}
df['id1'] = df['Type'].map(dictionary)
df['grp'] = (df['id1']!=df['id1'].shift()).cumsum()
现在,您可以使用简单的groupby
汇总值,如下所示。这将是每次连续买卖的总和
df.groupby(['grp'])['Amount'].sum()
这是grp列的输出。
Type grp
0 BUY 1
1 BUY 1
2 BUY 1
3 BUY 1
4 SELL 2
5 SELL 2
6 SELL 2
7 SELL 2
8 BUY 3
9 SELL 4
10 BUY 5
11 SELL 6
12 BUY 7
13 SELL 8
14 BUY 9
15 BUY 9
16 SELL 10
17 SELL 10