如何连接两列具有列表的列,以使结果列表中没有重复项。
df:
A B
[a,b] [c,d,a,b]
[s,d] [d,f]
新列中的预期结果:
A_B
[a,b,c,d]
[s,d,f]
答案 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']]))