首页 > 解决方案 > 如何扩展行包含值列表的数据框?

问题描述

    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

标签: pythonpandas

解决方案


您可以使用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列是用相同的形状实例化的。


推荐阅读