python - 在 Pandas 中找到两个系列之间的交集

标签 python pandas series intersection

我在 pandas 中有两个系列 s1s2 并且想要计算交集,即该系列的所有值都是公共(public)的。

我将如何使用 concat 函数来执行此操作?我一直在尝试解决,但一直无法解决(我不想计算 s1s2 索引的交集,而是计算值) .

最佳答案

将这两个系列放在 Python 的 set container 中然后使用集合交集方法:

s1.intersection(s2)

然后根据需要转换回列表。

刚刚注意到标签中有 Pandas 。可以翻译回那个:

pd.Series(list(set(s1).intersection(set(s2))))

根据评论,我已将其更改为更 Pythonic 的表达式,更短且更易于阅读:

Series(list(set(s1) & set(s2)))

应该可以解决问题,除非索引数据对您也很重要。

在转到 pd.Series 之前添加了 list(...) 来翻译集合,因为 pandas 不接受集合作为系列的直接输入。

关于python - 在 Pandas 中找到两个系列之间的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18079563/

相关文章:

python - 使用地址在 python 进程之间共享 ctype 内存

python - python中循环的向量化

python - 在 pandas 中添加带条件的列计算

python - 将所有列设置为索引,或将数据帧转换为多索引系列

java - 使用级数确定 double 的平方根

Python 舍入到最接近的 .0125

python - cryptopp 错误 : expected '=' , ',' 、 ';' 、 'asm' 或 '__attribute__' 在 '{' token 之前

python - 根据日期和时间分割数据

arrays - Pandas 中 DataFrame 中行的成对 Cohen Kappa (python)

python - 两个 Pandas 系列的散点图,按日期着色并带有图例