熊猫行汇总

时间:2020-05-18 00:56:06

标签: python pandas

我正在尝试分析和组织交易历史记录文件。
我正在尝试将每3或4行具有相同类型的行汇总在一起:如果买入或卖出彼此紧随其后,则将它们合并在一起。如果没有,我只想排一行。
如您在下面的例子中看到的那样,这些多买交易将我希望它们汇总到一行,然后再进行另一行卖出交易。
在新的df中加上交易的总价格和金额。 CSV的链接:https://drive.google.com/file/d/1GoDRdI7G8uJzuLoFrm5InbDg23mAwW6o/view?usp=sharing enter image description here

1 个答案:

答案 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