我在包含集合的数据框中有两列。
如何获取一个新列,其中每一行包含各列中项目的并集?
例如:
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']))
不起作用
答案 0 :(得分:1)
我认为你非常接近 - 将apply
与axis=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}