如何在Pandas中寻找系列之间的交集

326 阅读2分钟

你可以使用下面的基本语法来查找pandas中两个系列的交集:

set(series1) & set(series2)

回顾一下,两个集合的交集只是两个集合中有的值的集合。

下面的例子展示了如何在实践中计算pandas系列之间的交集。

例1:计算两个pandas系列的交集

下面的代码展示了如何计算两个pandas系列之间的交集:

import pandas as pd

#create two Series
series1 = pd.Series([4, 5, 5, 7, 10, 11, 13])
series2 = pd.Series([4, 5, 6, 8, 10, 12, 15])

#find intersection between the two series
set(series1) & set(series2)

{4, 5, 10}

结果是一个包含4510三个值的集合。

这是唯一三个同时出现在第一个和第二个系列中的值。

还要注意的是,这个语法适用于包含字符串的pandas系列:

import pandas as pd

#create two Series
series1 = pd.Series(['A', 'B', 'C', 'D', 'E'])
series2 = pd.Series(['A', 'B', 'B', 'B', 'F'])

#find intersection between the two series
set(series1) & set(series2)

{'A', 'B'}

在第一个和第二个系列中的唯一字符串是AB

例2:计算三个Pandas系列的交集

下面的代码展示了如何计算三个Pandas系列的交集:

import pandas as pd

#create three Series
series1 = pd.Series([4, 5, 5, 7, 10, 11, 13])
series2 = pd.Series([4, 5, 6, 8, 10, 12, 15])
series3 = pd.Series([3, 5, 6, 8, 10, 18, 21])

#find intersection between the three series
set(series1) & set(series2) & set(series3)

{5, 10}

结果是一个包含510两个值的集合。

这是在所有三个系列中唯一的值。

其他资源

下面的教程解释了如何在pandas中对系列进行其他常见的操作:

如何将Pandas系列转换为DataFrame
如何将Pandas系列转换为NumPy阵列
如何在Pandas中合并两个或多个系列