熊猫联盟在两列的集合

时间:2016-06-01 07:50:19

标签: python pandas set

我在包含集合的数据框中有两列。

如何获取一个新列,其中每一行包含各列中项目的并集?

例如:

col1 : [{1,2} , {4,5}]
col2 : [{1,6} , {7,5}]
union : [{1,2,6}, {4,5,7}]

天真的尝试:

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

不起作用

1 个答案:

答案 0 :(得分:1)

我认为你非常接近 - 将applyaxis=1

一起使用
import pandas as pd

df = pd.DataFrame([[{1,2} , {1,6}], [{4,5} , {7,5}]], columns=['col1', 'col2'])

df['union'] = df.apply(lambda x: x['col1'].union(x['col2']), axis=1)
print (df)
     col1    col2      union
0  {1, 2}  {1, 6}  {1, 2, 6}
1  {4, 5}  {5, 7}  {4, 5, 7}

| docs的另一种解决方案:

df['union'] = df.apply(lambda x: (x['col1'] | x['col2']), axis=1)
print (df)
     col1    col2      union
0  {1, 2}  {1, 6}  {1, 2, 6}
1  {4, 5}  {5, 7}  {4, 5, 7}