【发布时间】:2021-03-05 11:57:09
【问题描述】:
我有一个非常大的数据表,其中包含 play_id、position 和 frame 列。
-
play_id- 指特定的戏剧 -
position- A 或 B(每场比赛共有 3 名玩家(行) - As 和 B 的任意组合) -
frame- 时间范围(例如,想象每 1 秒冻结一次)
以下显示示例数据(为清楚起见进行了简化):
| play_id | position | frame |
|---|---|---|
| 1 | A | 1 |
| 1 | A | 1 |
| 1 | B | 1 |
| 1 | A | 2 |
| 1 | A | 2 |
| 1 | B | 2 |
| 2 | A | 1 |
| 2 | B | 1 |
| 2 | B | 1 |
| 2 | A | 2 |
| 2 | B | 2 |
| 2 | B | 2 |
我想为每个 play_id 计算每个位置的玩家数量(对于给定的 play_id,它们在帧之间是一致的)并在每个位置附加一个数字以使它们独一无二。
这将导致以下结果:
| play_id | position | frame |
|---|---|---|
| 1 | A_1 | 1 |
| 1 | A_2 | 1 |
| 1 | B_1 | 1 |
| 1 | A_1 | 2 |
| 1 | A_2 | 2 |
| 1 | B_1 | 2 |
| 2 | A_1 | 1 |
| 2 | B_1 | 1 |
| 2 | B_2 | 1 |
| 2 | A_1 | 2 |
| 2 | B_1 | 2 |
| 2 | B_2 | 2 |
实际上,我有 7 个不同的位置、25 个帧和大约 500,000 个 play_id(以及更多列)。
我怎样才能以有效的方式实现这一目标?我认为应该使用groupby,但我不知道如何使用。
【问题讨论】:
标签: python pandas pandas-groupby