连接包含列表python的两列

时间:2019-07-31 21:52:15

标签: python pandas

如何连接两列具有列表的列,以使结果列表中没有重复项。

df:

A         B  

[a,b]   [c,d,a,b]
[s,d]   [d,f]

新列中的预期结果:

A_B
[a,b,c,d]
[s,d,f]

1 个答案:

答案 0 :(得分:2)

粗鲁但简洁

df.sum(1).map(set).map(list).to_frame('_'.join(df))

            A_B
0  [a, d, b, c]
1     [s, d, f]

原油少,琥珀色少

但可能更好

pd.DataFrame(
    {'_'.join(df): [[*set().union(*t)] for t in zip(*map(df.get, df))]},
    df.index,
)

            A_B
0  [a, d, b, c]
1     [s, d, f]

设置

df = pd.DataFrame(dict(A=[[*'ab'], [*'sd']], B=[[*'cdab'], [*'df']]))