2016-06-01 6 views
2

セットを含むデータフレームに2つの列があります。セットの2つの列にあるPandasユニオン

各列にそれぞれの列の項目の和集合が含まれている新しい列を取得するにはどうすればよいですか?

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

を動作しません - 使用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} 
関連する問題