首页 > 解决方案 > 合并列表是将 pandas 数据框的多列转换为一列中的单个列表

问题描述

我有一个包含两列列表的数据框。我想将这些列合并到一个列中,并将这些列表合并到一个列表中。此外,此列表应仅包含原始列表中的唯一值。

我尝试使用df['E']=df[['B','C']].values.tolist().

但是,这会创建一个包含两个列表的值的单列。

数据框看起来像这样:

A       B       C       D
a1      [b1,b2] [c1,b1] d1
a2      [b1,b1] [b3]    d2
a3      [b2]    [b2,b2] d3

最终的数据框应如下所示:

A       B       C       D       E
a1      [b1,b2] [c1,b1] d1      [b1,b2,c1]
a2      [b1,b1] [b3]    d2      [b1,b3]
a3      [b2]    [b2,b2] d3      [b2]

编辑:数据框列表中的值是字符串。

标签: pythonpandas

解决方案


国际大学联盟

df['E']=(df.B+df.C).map(set).map(list)
df
Out[81]: 
    A         B         C   D             E
0  a1  [b1, b2]  [c1, b1]  d1  [b2, b1, c1]
1  a2  [b1, b1]      [b3]  d2      [b3, b1]
2  a3      [b2]  [b2, b2]  d3          [b2]

推荐阅读