【问题标题】:Create rows when list type column has more than one values in a pandas data frame当列表类型列在熊猫数据框中具有多个值时创建行
【发布时间】:2021-02-11 10:37:24
【问题描述】:

我有一个这样的数据框,

df
col1    col2 (the type is list) 
 1      [a]
 2      [a,b]
 3      [b]
 4      [a,b,c]

这里 col1 的值是唯一的。现在我想创建更多的行,其中列表的长度大于 1,并且在这些情况下 col1 值将相同。所以最终的数据框应该是这样的,

df
col1    col2
 1       [a]
 2       [a]
 2       [b]
 3       [b]
 4       [a]
 4       [b]
 4       [c]

我可以使用 for 循环来执行此操作并遍历列表的长度,但这需要更多时间,因此请寻找一些 pandas 捷径来更有效地完成此操作。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    首先使用DataFrame.explode,然后对一个元素列表使用 lambda 函数:

    df = df.explode('col2')
    df['col2'] = df['col2'].apply(lambda x: [x])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-14
      • 2019-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 2022-11-17
      • 2017-02-05
      相关资源
      最近更新 更多