使用Pandas在Python中按多列合并

2025年1月5日 | 阅读 7 分钟

引言

在本教程中,我们将学习如何在 Python 中使用 Pandas 合并多列。Pandas 是一个广泛使用的 Python 开源库。它提供了一种快速灵活的方式来处理结构化数据,包括从不同来源读取和写入数据、清理、过滤、分组和操作数据,以及合并多个数据框。Pandas 构建在 NumPy 之上,并提供了易于使用的数据结构,如 Series 和 DataFrame,非常适合数据分析。

合并数据框是数据分析和数据科学中的一项重要任务。它涉及在多个列上组合两个或多个数据框中的数据。此过程允许您组合来自不同来源的数据、从不同角度比较和分析数据,并获取有用的信息。例如,将客户数据与销售数据结合起来分析客户行为和偏好,或将天气数据与农作物数据结合起来确定天气对农作物的影响。在数据分析中,可以使用 merge 函数轻松合并 Pandas DataFrame。您可以通过指定使用的列来简化此过程。通过简单的语法,Merge 成为在许多情况下用于操作数据的简单工具。本文通过逐步讲解合并 Pandas DataFrame 的简单步骤,为您提供快速提高数据处理技能的技巧。

语法

在 Python 中使用 Pandas 合并多列的语法如下:

参数

在 Python 中使用 Pandas 合并多列的参数如下:

返回值

在 Python 中合并多列的返回值是 DataFrame。

在 Python 中合并多列的方法

有许多方法可以通过相应列合并两个 DataFrame。在这里,我们使用一些方法按列合并两个 DataFrame,如下所示:

  1. 内连接合并
  2. 外连接合并
  3. 左连接合并
  4. 右连接合并
  5. 列子集合并
  6. DataFrame 串联合并

在 Python 中使用 Pandas 创建 DataFrame

在此示例中,代码使用 pandas 库在 Python 中创建两个 DataFrame(“d1”和“d2”)。“d1”包含“Name”和“Marks”,“d2”包含“Name”、“Grade”、“Rank”和“Gender”。然后,查看数据框。代码如下:

输出

现在我们运行上面的代码并从中查找结果。结果如下:

Name	Marks
0	Rima	67
1	Priya	79
2	Hiya	90
3	Mita	98
4	Diya	89
	Name	Grade	Rank	Gender
0	Rima	B	4	Female
1	Rudra	A	3	Male
2	Hiya	A	2	Female
3	Mita	A	1	Female

1. 在 Python 中使用内连接合并两个 DataFrame

“merge”方法用于通过内连接合并两个 DataFrame,比较相对于指定列的行,并创建一个具有合并结果的新 DataFrame。

程序代码

在此,我们提供在 Python 中使用内连接合并两个 DataFrame 的程序代码。在此示例中,代码使用“Name”列作为键合并 DataFrame“d1”和“d2”。结果是一个新的 DataFrame,包含“Name”、“Marks”、“Grade”和“Rank”列,其中仅包含两个 DataFrame 中的有效值。代码如下:

输出

现在我们运行上面的代码并从中查找结果。结果如下:

   Name  Marks Grade  Rank
0  Rima     67     B     4
1  Hiya     90     A     2
2  Mita     98     A     1

2. 在 Python 中使用外连接合并两个 DataFrame

外连接合并方法包含来自两个 DataFrame 的所有行。如果其中一个 DataFrame 中的某一行没有匹配项,则数据中不匹配的行将用 NaN 值填充。

程序代码

在此,我们提供在 Python 中使用外连接合并两个 DataFrame 的程序代码。在此示例中,代码基于“Name”列在 DataFrame“d1”和“d2”之间执行外连接,并创建一个名为“d_merged”的新 DataFrame,其中包含合并的数据(包含 DataFrames 中的所有行)。代码如下:

输出

现在我们运行上面的代码并从中查找结果。结果如下:

    Name  Marks Grade  Rank  Gender
0   Rima   67.0     B   4.0  Female
1  Priya   79.0   NaN   NaN     NaN
2   Hiya   90.0     A   2.0  Female
3   Mita   98.0     A   1.0  Female
4   Diyr   89.0   NaN   NaN     NaN
5  Rudra    NaN     A   3.0    Male

3. 在 Python 中使用左连接合并两个 DataFrame

左连接合并方法使用左连接连接两个 pandas DataFrame,按顺序合并行,匹配左 DataFrame 中的行,同时存储右 DataFrame 中的所有行。

程序代码

在此,我们提供在 Python 中使用左连接合并两个 DataFrame 的程序代码。在创建的 DataFrame 中,d2 的 Level 字段将与 d1 合并作为主列名,并且合并模式为左,即显示左 DataFrame(d1)的所有值。代码如下:

输出

现在我们运行上面的代码并从中查找结果。结果如下:

    Name  Marks  Rank
0   Rima     67   4.0
1  Priya     79   NaN
2   Hiya     90   2.0
3   Mita     98   1.0
4   Diyr     89   NaN

4. 在 Python 中使用右连接合并两个 DataFrame

右连接合并方法包含来自右 DataFrame 的所有行以及来自左文件的匹配行。如果没有匹配项,则左 DataFrame 中的行将用 NaN 值填充。

程序代码

在此,我们提供在 Python 中使用右连接合并两个 DataFrame 的程序代码。在此示例中,代码基于“Name”列将合并规则应用于两个 DataFrame“d1”和“d2”,并将结果分配给值“d_merged”。代码如下:

输出

现在我们运行上面的代码并从中查找结果。结果如下:

    Name  Marks Grade  Rank  Gender
0   Rima   67.0     B     4  Female
1  Rudra    NaN     A     3    Male
2   Hiya   90.0     A     2  Female
3   Mita   98.0     A     1  Female

5. 在 Python 中使用列子集合并两个 DataFrame

列子集合并方法通过从一个 DataFrame 中选择一组特定行并将它们与另一个文件按相应顺序链接起来,来合并 pandas 中的两个 DataFrame。这会创建包含来自两个数据集的选定行的相同 DataFrame。

程序代码

在此,我们提供在 Python 中使用列子集合并两个 DataFrame 的程序代码。在此示例中,我们将 d1 与 d2 合并。d1 的字符串与 d2 合并,其中仅显示与两个 DataFrame 中的主列 Name 相关的正结果。代码如下:

输出

现在我们运行上面的代码并从中查找结果。结果如下:

    Name  Marks   Name Grade  Rank  Gender
0   Rima     67   Rima     B   4.0  Female
1  Priya     79  Rudra     A   3.0    Male
2   Hiya     90   Hiya     A   2.0  Female
3   Mita     98   Mita     A   1.0  Female
4   Diyr     89    NaN   NaN   NaN     NaN

结论

在本教程中,我们将学习如何在 Python 中使用 Pandas 合并多列。合并数据框架是数据分析和数据科学中的一项重要任务。Pandas 提供了一个强大的工具,可以跨多个通道合并数据框。在本教程中,我们将逐步介绍如何使用 Pandas 将两个 DataFrame 合并到多个列中。我们创建两个 DataFrame,将它们放入相应的列中,并搜索合并的 DataFrame 以提取有用的注释。通过实现 Pandas 的合并功能,您可以解锁数据的全部潜力。在这里,我们通过示例学习一些使用 pandas 合并多列的方法。