在pandas中分组和自动递增组ID

时间:2015-03-03 04:14:02

标签: python pandas trading

我有python pandas数据框

trades = pd.DataFrame({"Qty":[-25,0,25,50,75,0,25,0,-25,0,-25,-50,0,-25,50,0]})
print trades
    Qty
0   -25
1     0
2    25
3    50
4    75
5     0
6    25
7     0
8   -25
9     0
10  -25
11  -50
12    0
13  -25
14   50
15    0

数量是出售/买入的累计数量,当它变为0时,持仓量持平。

我想分配组ID,以便我可以从下达的订单中提取已执行的交易。

    Qty     Trade_Group
0   -25     1
1     0     1
2    25     2
3    50     2
4    75     2
5     0     2
6    25     3
7     0     3
8   -25     4
9     0     4
10  -25     5
11  -50     5
12    0     5
13  -25     6
14   50     6
15    0     6

如果明确地遍历行并分配Trade_Group值,那么如何 我可以构建Trade_group列吗?

感谢您的时间!

1 个答案:

答案 0 :(得分:5)

trades = pd.DataFrame({"Qty":[-25,0,25,50,75,0,25,0,-25,0,-25,-50,0,-25,50,0]})
trades["group"] = (trades.Qty == 0).shift(1).fillna(0).cumsum()