Python Pandas中两个数据框架的交集 您所在的位置:网站首页 并集怎么取值 Python Pandas中两个数据框架的交集

Python Pandas中两个数据框架的交集

2024-07-18 06:07| 来源: 网络整理| 查看: 265

在Pandas中,有几种方法可以计算两个DataFrame对象的交集。

方法一:使用merge()函数

merge()函数是将两个DataFrame对象结合在一起的函数,它可以根据指定的列将两个DataFrame对象合并在一起。

示例:

import pandas as pd # 创建df1和df2 DataFrame df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}) df2 = pd.DataFrame({'A': ['A2', 'A3', 'A4', 'A5'], 'B': ['B2', 'B3', 'B4', 'B5'], 'C': ['C2', 'C3', 'C4', 'C5'], 'E': ['E2', 'E3', 'E4', 'E5']}) # 使用merge()函数合并,指定on参数代表“以什么作为索引”,默认为None,即使用公共列名作为连接键 df = pd.merge(df1, df2, on=['A', 'B', 'C'], how='inner') print(df)

上述代码中,将df1和df2的交集返回至新的DataFrame对象df中,使用on参数指定连接键,然后使用how参数指定inner来计算交集。在返回的DataFrame中,保留了所有在df1和df2中的行,只保留在df1和df2中具有相同的值的行。

输出:

A B C D E 0 A2 B2 C2 D2 E2 1 A3 B3 C3 D3 E3 方法二:使用merge()函数和Index

也可以使用merge()函数和Index来计算DataFrame对象之间的交集。使用Index可以让我们更灵活地控制连接键。

示例:

import pandas as pd # 创建df1和df2 DataFrame df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}) df2 = pd.DataFrame({'A': ['A2', 'A3', 'A4', 'A5'], 'B': ['B2', 'B3', 'B4', 'B5'], 'C': ['C2', 'C3', 'C4', 'C5'], 'E': ['E2', 'E3', 'E4', 'E5']}) # 设置连接键,用于将DataFrame对象合并在一起 merged = pd.merge(df1, df2, left_index=True, right_index=True, how='inner') print(merged)

上述代码中,我们将df1和df2的索引作为连接键(left_index和right_index),将其合并在一起,之后使用how='inner'来计算它们之间的交集。

输出:

A_x B_x C_x D_x A_y B_y C_y D_y 2 A2 B2 C2 D2 A2 B2 C2 D2 3 A3 B3 C3 D3 A3 B3 C3 D3

注:如果想要在输出中只保留一个列名,可以在merge()函数中使用suffixes参数。

以上就是Pandas中计算DataFrame对象交集的完整攻略。使用合适的方法和连接键,可以在少数代码行中完成相对较复杂的操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Pandas中两个数据框架的交集 - Python技术站



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有