【发布时间】:2017-07-12 08:41:46
【问题描述】:
我需要保持“每个团队每个帐户每个脚本”的位置。所以我认为可能会使用熊猫groupby。我也试图在数据框的评论中陈述我的问题。位置栏是我手动添加的。
我有初始 df
time account scrip buy_price sell_price qty team
0 06/07/17 09:36 A1 FUT1 50.0 NaN 2 team1
1 06/07/17 09:46 A2 FUT1 100.0 NaN 2 team1
2 06/07/17 09:56 A3 FUT1 10.0 NaN 2 team2
3 06/07/17 09:57 A3 FUT1 NaN 10.0 2 team2
4 06/07/17 09:58 A1 FUT1 NaN 50.0 1 team1
5 06/07/17 09:59 A3 FUT1 NaN 50.0 1 team2
我需要添加位置。位置列是我手动添加的,在评论中我写了额外的注释,以明确如何计算位置。
time account scrip buy_price sell_price qty team position comment
0 06/07/17 09:36 A1 FUT1 50.0 NaN 2 team1 2 this can only be sold by team1 account A1
1 06/07/17 09:46 A2 FUT1 100.0 NaN 2 team1 2 this can only be sold by team1 account A2
2 06/07/17 09:56 A3 FUT1 10.0 NaN 2 team2 2 this can only be sold by team2 account A3
3 06/07/17 09:57 A3 FUT1 NaN 10.0 2 team2 0 sold by team 2 in acc A3
4 06/07/17 09:58 A1 FUT1 NaN 50.0 1 team1 1 sold by team 1 in acc A1
5 06/07/17 09:59 A3 FUT1 NaN 50.0 1 team2 -1 sold by team 2 in acc A3
以上示例仅针对 1 个代币 FUT1,会有很多代币。我的最终结果将类似于。
Team Account Scrip Position
team1 A1 FUT1 1
A2 FUT1 2
team2 A3 FUT1 -1
一旦位置计算成功,可以稍后处理最终结果。
我的方法:在每一行中创建一个唯一的键,以便知道何时 + 或 - 位置。例如。 A1_FUT1_team1 为row1 A2_FUT1_team1 为row2。然后添加减法匹配键。这到底是个好方法吗?
【问题讨论】:
-
您能展示一下您实际尝试过的内容吗?
-
怎么样? row1:pos=+2 因为 t1a1 购买了 2 个数量,row2:pos=+2 因为 t1a2 购买了 2 个数量,row3:pos:+2 因为 t2a3 购买了 2 个数量,row4:pos=0 因为 t23 出售了 2 个数量等等。你看错什么了。? t1a1=>team1account1
-
哦,现在我明白了,不过 cmets 列还不够清晰
标签: python pandas pandas-groupby