首页 > 解决方案 > 获取两个系列之间的交集时出错

问题描述

从 pandas 数据框中,我随机选择了两个使用 df.sample(n).

然后我尝试了tmp = pd.df[(randomset)&(randomset2)]['ID']

并得到了这个错误TypeError: unsupported operand type(s) for &: 'list' and 'bool'

我在哪里做错了?

我想要做的是从数据中选择两个随机行,如下所示

Num      ID
A235     [1,3,4,6,8]
A537     [3,5,2,7,8]
...      ...

并从这两行 ID 部分获取交集并计算它

标签: pythonpandas

解决方案


可以在集合上执行相交。因此,您必须在应用交集操作之前将您的系列转换为设置。有帮助吗??

df = pd.DataFrame([['A235',[1,3,4,6,8]],['A537',[3,5,2,7,8]]], columns=['Num','ID'])
randomset1=set(df.loc[0]['ID'])
randomset2=set(df.loc[1]['ID'])
print(randomset1&randomset2)

输出:

{8, 3}

推荐阅读