python - 如何转置顺序数据?简单的熊猫练习
问题描述
我有一个包含 2 列的数据框:
- 会话 ID
- 用户操作
用户操作的类型可以是 1、2、3、4、5、6。每个会话由一系列用户操作组成。
例如
Session AAAAA: 1 1 2 3 1 6 1 1 5
Session BBBBB: 1 2 5
...
我有 400k 唯一会话 ID,但是我有 5M 行。因为,每一行都是一个会话 ID + 一个用户操作。然后,相同的会话 ID 在下方出现更多次,并与另一个操作相匹配。
数据的外观:
Session | Event
AAAAA | 1
AAAAA | 1
BBBBB | 1
CCCCC | 1
BBBBB | 2
AAAAA | 2
.....
5M 行
但是,我需要以上述格式获取数据。我的第一列应该是会话 ID,我将在每行中拥有 400k 唯一会话 ID。然后,沿每一行水平显示,我将拥有每个会话的事件序列。它们的列名可以是 'event1'、'event2'、... 此外,它们的长度不同,因此 NaN 可以保持原样,也可以用 0 填充。
我想要数据框:
Session | e1 | e2 | ...
AAAAA | 1 | 1 | 2 | 3 | 1 | 6 | 1 | 1 | 5 | 0 | 0 | 0
BBBBB | 1 | 2 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
...
例如,我认为这在 SQL 中是一件非常容易的事情,但我在 Python 中对此并不熟悉。