【发布时间】:2017-07-21 13:54:16
【问题描述】:
我有一个 df,例如:
df=pd.DataFrame.from_items([('i', [set([1,2,3,4]), set([1,2,3,4]), set([1,2,3,4]),set([1,2,3,4])]), ('j', [set([2,3]), set([1]), set([4]),set([3,4])])])
看起来像
>>> df
i j
0 {1, 2, 3, 4} {2, 3}
1 {1, 2, 3, 4} {1}
2 {1, 2, 3, 4} {4}
3 {1, 2, 3, 4} {3, 4}
我想计算 df.i.intersection(df.j) 并将其指定为 k 列。也就是说,我想要这个:
df['k']=[df.i.iloc[t].intersection(df.j.iloc[t]) for t in range(4)]
>>> df.k
0 {2, 3}
1 {1}
2 {4}
3 {3, 4}
Name: k, dtype: object
这个有 df.apply() 吗?实际的 df 是数百万行。
【问题讨论】:
标签: python pandas set intersection