📅  最后修改于: 2023-12-03 15:10:08.596000             🧑  作者: Mango
在使用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]})
pandas提供了一个名为merge
的函数,可以将两个数据框按照某些列进行合并。具体而言,我们可以通过指定left
、right
、how
、on
等参数来决定要加入的数据、合并方式以及连接键。
接下来,我们将按照Name
这一列,将df2
的两个新列Height
和Weight
加入到df1
数据框中。代码如下:
merged_df = pd.merge(df1, df2[['Name', 'Height', 'Weight']], on='Name', how='left')
上述代码中,df2[['Name', 'Height', 'Weight']]
表示从df2
数据框中选取Name
、Height
和Weight
这三列,并将其作为一个新的数据框,供merge函数使用。on='Name'
表示按照Name
这一列进行连接。how='left'
表示以df1
数据框的行为基础,将df2
中的Height
和Weight
两列加入到merged_df
数据框中,如果没有匹配的行,则用NaN填充。
运行以上代码后,我们可以得到以下数据框merged_df
:
| Name | Age | Gender | Height | Weight | | ---- | --- | ------ | ------ | ------ | | Tom | 24 | Male | 175 | 65 | | Lucy | 23 | Female | NaN | NaN |
可以看到,我们成功地将df2
数据框中的Height
和Weight
两列,按照Name
这一列加入到了df1
数据框中。
除了left
方式之外,pandas
还支持right
、inner
和outer
四种方式,分别表示以df2
、两个数据框的交集和两个数据框的并集为基础,将数据框加入到主数据框中。此外,我们还可以使用suffixes
参数指定用于区分重复列名的后缀。
本文介绍了使用pandas按列加入数据框的方法,并用一个示例表格演示了具体的实现方式。通过merge函数,我们可以轻松将不同数据源的数据进行合并,大幅提升数据处理的效率。