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

时间:2018-11-28 19:00:19

标签: python pandas

    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

1 个答案:

答案 0 :(得分:2)

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