通过匹配的ID号合并两个Pandas数据框

yizhihongxing

通过匹配ID号合并两个 Pandas 数据框可以使用 Pandas 库的 merge() 函数。下面是完整的攻略步骤:

  1. 读入两个数据框,分别名为 df1 和 df2,两个数据框中都包含一个 ID 列。
import pandas as pd

df1 = pd.read_csv('data1.csv')
df2 = pd.read_csv('data2.csv')
  1. 确认两个数据框中的 ID 列以及需要合并的列(例如值列)的数据类型一致。如果不一致,需要进行类型转换。
df1['ID'] = df1['ID'].astype(str)
df2['ID'] = df2['ID'].astype(str)
  1. 基于 ID 列对两个数据框进行合并,使用 merge() 函数实现。
merged_df = pd.merge(df1, df2, on='ID')

其中,on 参数指定了基于哪一列进行合并。

  1. 可选地,可以指定合并方式和合并列的名称等。
# 指定合并方式为 outer
merged_df = pd.merge(df1, df2, on='ID', how='outer')

# 指定合并列名称
merged_df = pd.merge(df1, df2, on='ID', suffixes=('_left', '_right'))

以上就是通过匹配的 ID 号合并两个 Pandas 数据框的完整攻略。下面通过实例说明,更加详细地说明整个过程。

例如,我们有两个数据框 df1 和 df2,它们分别包含学生的 ID 和年龄信息:

# df1
   ID  Age
0  001   18
1  002   19
2  003   20
3  004   21

# df2
   ID  Age
0  002   20
1  003   21
2  005   19
3  007   22

现在我们需要将两个数据框合并为一个,包含所有学生的信息。基于 ID 列进行合并,代码如下:

merged_df = pd.merge(df1, df2, on='ID')

结果如下:

   ID  Age_x  Age_y
0  002     19     20
1  003     20     21

可以看到,合并后的数据框只包含 ID 列中重复的学生信息,并自动将两个数据框中的 Age 列区分为 Age_x 和 Age_y 列。

如果希望包含所有学生的信息,即使某些学生的信息在某个数据框中不存在,可以使用 outer 合并方式:

merged_df = pd.merge(df1, df2, on='ID', how='outer')

结果如下:

   ID  Age_x  Age_y
0  001   18.0    NaN
1  002   19.0   20.0
2  003   20.0   21.0
3  004   21.0    NaN
4  005    NaN   19.0
5  007    NaN   22.0

可以看到,合并后的数据框包含所有学生的信息,即使某些学生的信息在某个数据框中不存在,也会自动填充为 NaN。此时,如果希望将 Age_x 和 Age_y 列合并为一个 Age 列,并删除重复的 ID 列,可以使用如下代码:

merged_df = pd.merge(df1, df2, on='ID', how='outer')
merged_df['Age'] = merged_df[['Age_x', 'Age_y']].fillna(0).sum(axis=1)
merged_df.drop(['Age_x', 'Age_y'], axis=1, inplace=True)

最终结果如下:

   ID   Age
0  001  18.0
1  002  39.0
2  003  41.0
3  004  21.0
4  005  19.0
5  007  22.0

可以看到,合并后的数据框包含了所有学生的信息,并将 Age_x 和 Age_y 合并为了一个 Age 列,并删除了重复的 ID 列。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过匹配的ID号合并两个Pandas数据框 - Python技术站

(1)
上一篇 2023年3月27日
下一篇 2023年3月27日

相关文章

  • 如何扭转Pandas数据框架的列序

    在Pandas数据分析中,经常需要对数据框架的列进行重新排列,以便更好地分析和可视化数据。本攻略提供了几种方法来扭转Pandas数据框架的列序。 方法一:使用reindex()方法 使用reindex()方法可以实现对列的重新排序。下面是一个例子: import pandas as pd # 创建数据框架 data = {‘Name’:[‘Tom’, ‘Ja…

    python-answer 2023年3月27日
    00
  • pandas进行数据的交集与并集方式的数据合并方法

    首先,我们需要了解pandas中可以使用merge()函数和concat()函数进行数据合并。 使用merge函数进行数据合并 merge()函数是pandas中用于将不同DataFrame中的数据合并的函数,它的语法如下: pandas.merge(left, right, how=’inner’, on=None, left_on=None, right…

    python 2023年6月13日
    00
  • Pandas数据清洗函数总结

    《Pandas数据清洗函数总结》这篇文章主要是介绍Pandas中常用的数据清洗函数,其主要分为以下几个部分: 1.缺失值处理 在数据处理的过程中,经常会出现数据缺失的情况,我们需要使用相关的函数进行缺失值的处理。下面是常用的缺失值处理函数: isnull()/notnull()函数:返回布尔值,表示是否为缺失值。 dropna()函数:删除所有包含缺失值的行…

    python 2023年5月14日
    00
  • 如何选择一个DataFrame的子集

    选择DataFrame的子集需要考虑到数据的类型,数据中的关键信息,和选择规则等多个因素。下面是一些基本的选择子集的方法。 选择某一列 可以通过在中括号中输入列名来获取DataFrame中的指定列,也可以使用属性方式获取。 import pandas as pd data = pd.read_csv("data.csv") # 使用中括号…

    python-answer 2023年3月27日
    00
  • python通用数据库操作工具 pydbclib的使用简介

    标题:Python通用数据库操作工具 pydbclib的使用简介 1. 简介 pydbclib是一个Python的通用数据库操作工具,支持多种数据库类型,包括MySQL、PostgreSQL、Oracle等。它简化了Python对各种数据库的操作过程,提供了一致的API供开发者使用。 2. 安装 使用pip可以方便地安装pydbclib,安装命令如下: pi…

    python 2023年6月13日
    00
  • Python与Pandas和XlsxWriter组合工作 – 1

    Python、Pandas和XlsxWriter组合工作 Python是一种高级编程语言,可以轻松地进行数据处理和分析。Pandas是Python中的一个库,为处理和分析大量数据提供了高效的功能。XlsxWriter是Python中的另一个库,用于创建Excel文件。 安装Python、Pandas和XlsxWriter 在使用这三个库之前,需要在计算机上安…

    python-answer 2023年3月27日
    00
  • 使用Regex从Dataframe的指定列中提取标点符号

    使用Regex从Dataframe的指定列中提取标点符号的步骤如下: 导入必要的库 首先需要导入pandas库和re库,其中pandas库用于读取和处理数据,re库用于进行正则表达式匹配。 import pandas as pd import re 读取数据 使用pandas库读取数据,例如读取名为”example.csv”的表格数据。假设表格中有一列名为”…

    python-answer 2023年3月27日
    00
  • Python pandas DataFrame基础运算及空值填充详解

    Python pandas DataFrame基础运算及空值填充详解 简介 Python pandas是一个开源的、高性能、易用的数据分析和处理工具,可用于数据的清洗、处理、统计、分析等场景。其中,pandas中的DataFrame是常用的数据结构,可用于各种复杂数据的处理。 本文主要介绍DataFrame的基础运算及空值填充。 DataFrame 基础运算…

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