我有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列吗?
感谢您的时间!
答案 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()