我有一个像这样的数据框
data = [[1, [10, 11]], [1, [15, 16]], [2, [20, 24]], [2, [22, 23]]]
df = pd.DataFrame(data, columns = ['id', 'val'])
id val
0 1 [10, 11]
1 2 [15, 16]
这里
val
中每个列表的长度是相同的。
我想按行爆炸
val
。我无法找到一种直接的方法来做到这一点。
所以作为解决办法,我使用了
df.explode('val')
现在我想使用
df.pivot
但在此之前我想为每个 id
添加列名称。
像这样的东西
id val col_name
0 1 10 col_1
0 1 11 col_2
1 2 15 col_1
1 2 16 col_2
如何使用
col_name
添加 groupby
?
这将帮助我旋转数据框。
还有没有任何直接的方式按行爆炸,看起来像
id col_1 col_2
1 10 11
2 15 16
代码
out = pd.DataFrame(df['val'].tolist(), index=df['id'], columns=['col_1', 'col_2'])
出
col_1 col_2
id
1 10 11
2 15 16