首页 > 解决方案 > 如何转置顺序数据?简单的熊猫练习

问题描述

我有一个包含 2 列的数据框:

  1. 会话 ID
  2. 用户操作

用户操作的类型可以是 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 中对此并不熟悉。

标签: pythonpandasdataframetransposesequential

解决方案


推荐阅读