利用Pandas求两个dataframe差集的过程详解

yizhihongxing

求两个dataframe的差集其实就是找到第一个dataframe中不在第二个dataframe中出现的记录。利用Pandas可以非常方便地完成这个过程。

在实现中,首先需要将两个dataframe进行合并(即concat),然后对该合并后的表进行去重(即drop_duplicates),最后再筛选出不在第二个dataframe的记录(即~df3.isin(df2))即可。

以下是示例代码说明:

import pandas as pd

# 示例1
df1 = pd.DataFrame({'A': ['A1', 'A2', 'A3', 'A4'],
                    'B': ['B1', 'B2', 'B3', 'B4']})
df2 = pd.DataFrame({'A': ['A1', 'A2', 'A3'],
                    'B': ['B1', 'B2', 'B3']})

df3 = pd.concat([df1, df2])
df3 = df3.drop_duplicates()
diff_df = df3[~df3.isin(df2)]

print(diff_df)

# 示例2
df1 = pd.DataFrame({'A': ['A1', 'A2', 'A3', 'A4'],
                    'B': ['B1', 'B2', 'B3', 'B4']})
df2 = pd.DataFrame({'A': ['A3', 'A2'],
                    'B': ['B3', 'B2']})

df3 = pd.concat([df1, df2])
df3 = df3.drop_duplicates()
diff_df = df3[~df3.isin(df2)]

print(diff_df)

第一个示例中,df1和df2分别为两个不同的dataframe。利用concat方法将它们拼接起来,然后利用drop_duplicates去重。最后在合并后的表df3筛选出不在df2中的记录即为两个dataframe的差集。

第二个示例中,df1和df2与第一个示例相同,只是数据有所不同。同样地,将它们合并、去重后筛选出不在df2中的记录,即为两个dataframe的差集。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用Pandas求两个dataframe差集的过程详解 - Python技术站

(1)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 在Pandas中把出生日期转换为年龄

    在Pandas中把出生日期转换为年龄可以遵循以下步骤: 读取包含出生日期的数据集 import pandas as pd df = pd.read_csv(‘data.csv’) 将出生日期列转换为时间戳格式 df[‘出生日期’] = pd.to_datetime(df[‘出生日期’]) 计算当前日期与出生日期之间的时间差,并转换为年龄 today = pd…

    python-answer 2023年3月27日
    00
  • python格式化输出保留2位小数的实现方法

    当我们在Python中进行数值运算时,经常需要规定小数的位数。Python提供格式化输出的方法,可以让我们设置小数点后的位数,同时还可以进行更多的格式化操作。 1. 使用f-string格式化字符串 Python 3.6及以上版本的新特性f-string为字符串格式化提供了非常方便的方法。通过在字符串前加上f或F,然后在字符串中使用{}包含要格式化的数据,就…

    python 2023年5月14日
    00
  • 两个Pandas系列的加、减、乘、除法

    接下来我将详细讲解Pandas中两个系列的加、减、乘、除法的攻略,并结合实例进行说明。 Series的算术运算 Series对象可以通过加减乘除等操作进行算术运算。这些运算默认对齐索引,并返回一个新的Series对象。 下面是一些Series对象的算术运算的实例: import pandas as pd s1 = pd.Series([1, 2, 3], i…

    python-answer 2023年3月27日
    00
  • 将Pandas多指数变成列

    将Pandas多指数变成列可以使用reset_index()函数。reset_index()函数的作用是将数据框的行索引恢复为默认的整数索引,并将之前的行索引变成数据框的一列或多列。 下面是将多级行索引的数据框变成单级索引的数据框的代码示例: import pandas as pd # 创建一个多级行索引的数据框 data = {‘A’: [1, 1, 2,…

    python-answer 2023年3月27日
    00
  • 彻彻底底地理解Python中的编码问题

    接下来我会详细讲解“彻彻底底地理解Python中的编码问题”的完整攻略。 了解编码的基础知识 在Python中,字符串是使用Unicode编码的。Unicode是一个字符集,可以表示各种各样的字符。但是,Unicode对于如何将字符转换为具体的字节序列并没有做出规定,因此需要用编码来实现字符与字节之间的转换。 常见的编码方式有UTF-8、UTF-16、GB2…

    python 2023年5月14日
    00
  • 如何在Python中对Pandas DataFrame进行多列排序

    对Pandas DataFrame进行多列排序可以通过sort_values()函数实现。sort_values()函数可以接受多个参数来指定要排序的列及排序方式。 以下是完整攻略: 1. 准备数据 首先需要准备一份数据,用于演示多列排序。我们可以使用Pandas的read_csv()函数读取一份csv格式数据集。 import pandas as pd #…

    python-answer 2023年3月27日
    00
  • pandas中read_csv、rolling、expanding用法详解

    pandas中read_csv、rolling、expanding用法详解 在 pandas 中,我们经常需要读取 csv 文件并使用滚动窗口或扩展窗口分析数据。在本文中,我们将详细讲解使用 pandas 中的 read_csv、rolling 和 expanding 方法。 read_csv方法 read_csv 方法是 pandas 中读取 csv 文件…

    python 2023年5月14日
    00
  • 使用pandas生成/读取csv文件的方法实例

    使用pandas生成/读取csv文件是很常见的操作。下面将详细介绍如何使用pandas生成/读取CSV文件。 生成CSV文件 生成CSV文件的方法很简单,可以先将数据存储在pandas的DataFrame中,然后使用DataFrame.to_csv方法将其保存为CSV文件。 步骤1:生成数据 在本示例中,我们将使用一个简单的学生信息数据集。首先,我们生成一个…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部