📜  按列加入数据框 pandas - Python (1)

📅  最后修改于: 2023-12-03 15:10:08.596000             🧑  作者: Mango

按列加入数据框 pandas - Python

在使用pandas进行数据分析和处理时,我们经常需要将不同数据源的数据进行合并。在这个过程中,按列加入数据框是常见的一种方式。本文将介绍如何使用pandas按列加入数据框。

准备工作

在介绍具体的实现方法之前,我们首先需要准备一些数据。本文将使用以下两个数据集:

df1:

| Name | Age | Gender | | ---- | --- | ------ | | Tom | 24 | Male | | Lucy | 23 | Female |

df2:

| Name | Height | Weight | | ---- | ------ | ------ | | Tom | 175 | 65 | | Gary | 180 | 70 |

这两个数据集均为字典格式,我们可以通过以下代码将它们转换为pandas数据框:

import pandas as pd

df1 = pd.DataFrame({'Name': ['Tom', 'Lucy'], 'Age': [24, 23], 'Gender': ['Male', 'Female']})
df2 = pd.DataFrame({'Name': ['Tom', 'Gary'], 'Height': [175, 180], 'Weight': [65, 70]})
使用merge函数按列加入数据框

pandas提供了一个名为merge的函数,可以将两个数据框按照某些列进行合并。具体而言,我们可以通过指定leftrighthowon等参数来决定要加入的数据、合并方式以及连接键。

接下来,我们将按照Name这一列,将df2的两个新列HeightWeight加入到df1数据框中。代码如下:

merged_df = pd.merge(df1, df2[['Name', 'Height', 'Weight']], on='Name', how='left')

上述代码中,df2[['Name', 'Height', 'Weight']]表示从df2数据框中选取NameHeightWeight这三列,并将其作为一个新的数据框,供merge函数使用。on='Name'表示按照Name这一列进行连接。how='left'表示以df1数据框的行为基础,将df2中的HeightWeight两列加入到merged_df数据框中,如果没有匹配的行,则用NaN填充。

运行以上代码后,我们可以得到以下数据框merged_df

| Name | Age | Gender | Height | Weight | | ---- | --- | ------ | ------ | ------ | | Tom | 24 | Male | 175 | 65 | | Lucy | 23 | Female | NaN | NaN |

可以看到,我们成功地将df2数据框中的HeightWeight两列,按照Name这一列加入到了df1数据框中。

除了left方式之外,pandas还支持rightinnerouter四种方式,分别表示以df2、两个数据框的交集和两个数据框的并集为基础,将数据框加入到主数据框中。此外,我们还可以使用suffixes参数指定用于区分重复列名的后缀。

结论

本文介绍了使用pandas按列加入数据框的方法,并用一个示例表格演示了具体的实现方式。通过merge函数,我们可以轻松将不同数据源的数据进行合并,大幅提升数据处理的效率。