我有一个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])])])
所以看起来像
^{pr2}$我想计算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是数百万行。在
在}s有点问题,因为最好使用标量:
pandas
中使用set
s、list
s和{^{pr2}$
含有
apply
的溶液:可以使用集合差分重现集合交集。 A和B的交集等于A减去A中不在B中的元素(可以用B对称地求)。在
因此,您可以使用dataframesub方法来操作集合差异:
得出预期输出:
^{pr2}$相关问题 更多 >
编程相关推荐