你可以使用下面的基本语法来查找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}
结果是一个包含4、5、10三个值的集合。
这是唯一三个同时出现在第一个和第二个系列中的值。
还要注意的是,这个语法适用于包含字符串的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'}
在第一个和第二个系列中的唯一字符串是A和B。
例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}
结果是一个包含5 和10两个值的集合。
这是在所有三个系列中唯一的值。
其他资源
下面的教程解释了如何在pandas中对系列进行其他常见的操作:
如何将Pandas系列转换为DataFrame
如何将Pandas系列转换为NumPy阵列
如何在Pandas中合并两个或多个系列