在pandas数据框架中取消(分解)多个列表列的有效方法

2024-04-25 20:45:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将多个JSON对象读入一个数据帧。问题是有些列是列表。而且,数据很大,因此我无法使用互联网上可用的解决方案。它们速度很慢,内存不足

我的数据是这样的:

df = pd.DataFrame({'A': ['x1','x2','x3', 'x4'], 'B':[['v1','v2'],['v3','v4'],['v5','v6'],['v7','v8']], 'C':[['c1','c2'],['c3','c4'],['c5','c6'],['c7','c8']],'D':[['d1','d2'],['d3','d4'],['d5','d6'],['d7','d8']], 'E':[['e1','e2'],['e3','e4'],['e5','e6'],['e7','e8']]})
    A       B          C           D           E
0   x1  [v1, v2]    [c1, c2]    [d1, d2]    [e1, e2]
1   x2  [v3, v4]    [c3, c4]    [d3, d4]    [e3, e4]
2   x3  [v5, v6]    [c5, c6]    [d5, d6]    [e5, e6]
3   x4  [v7, v8]    [c7, c8]    [d7, d8]    [e7, e8]

这是我数据的形状:(441079,12)

我想要的输出是:

    A       B          C           D           E
0   x1      v1         c1         d1          e1
0   x1      v2         c2         d2          e2
1   x2      v3         c3         d3          e3
1   x2      v4         c4         d4          e4
.....

编辑:在被标记为重复之后,我想强调一个事实,在这个问题上,我正在寻找一种有效的方法来爆炸多个柱子。因此,批准的答案能够有效地在非常大的数据集上爆炸任意数量的列。另一个问题的答案没有做到(这就是我在测试这些解决方案后问这个问题的原因)。


Tags: 数据v3v2v4d2d1d3v1