如何展开行包含值列表的数据帧?

2024-06-12 03:08:43 发布

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

    c1                c2                             c3
0   [1, 2]     [[a, b], [c, d, e]]      [[aff , bgg], [cff, ddd, edd]]

我希望输出像:

    c1   c2   c3
0   1    a    aff
1   1    b    bgg 
2   2    c    cff
3   2    d    ddd
4   2    e    edd

Tags: affc2c1eddcffc3dddbgg
1条回答
网友
1楼 · 发布于 2024-06-12 03:08:43

您可以使用np.repeat()chain.from_iterable()

df = pd.DataFrame({'c1': np.repeat(df['c1'].values[0], [len(x) for x in (chain.from_iterable(df['c2']))]),
    'c2': list(chain.from_iterable(chain.from_iterable(df['c2']))),
    'c3': list(chain.from_iterable(chain.from_iterable(df['c3'])))
    })

退货:

   c1 c2   c3
0   1  a  aff
1   1  b  bgg
2   2  c  cff
3   2  d  ddd
4   2  e  edd

请记住,这是相对特定于您的用例的。它假设您的c2c3列是用相同的形状实例化的

相关问题 更多 >