📌  相关文章
📜  pandas 在另一个数据框列中 - Python (1)

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

Pandas在另一个数据框列中 - Python

在处理数据时,我们时常需要将一个数据框的某些列添加到另一个数据框中。这种操作在 Pandas 中非常容易实现,只需使用一些内置的数据框操作即可。本文将介绍如何将一个数据框的某些列添加到另一个数据框的情况。

1. 创建数据框

我们先创建两个数据框,一个名为 df1,另一个名为 df2。其中,df1 包含两列数据:名字和年龄。df2 包含三列数据:名字、体重和性别。我们将尝试将 df1 的“年龄”列添加到 df2 中。

import pandas as pd

data1 = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 35, 45, 55]
}
df1 = pd.DataFrame(data1)

data2 = {
    'Name': ['Alice', 'Bob', 'David', 'Ella'],
    'Weight': [60, 70, 80, 90],
    'Gender': ['F', 'M', 'M', 'F']
}
df2 = pd.DataFrame(data2)
2. 添加列

为了将 df1 的“年龄”列添加到 df2 中,我们需要使用 Pandas 的 merge 函数。merge 函数将两个数据框连接起来(可以是列连接或行连接),并将它们中共有的列作为连接键。

我们可以通过指定连接键来达到我们的目的。这里,我们将指定“Name”列为连接键,因为该列在两个数据框中都存在。

df_merged = pd.merge(df2, df1[['Name', 'Age']], on='Name', how='left')

参数说明:

  • df1[['Name', 'Age']]:仅选择 df1 数据框中的“Name”和“Age”列。
  • on='Name':指定连接键为“Name”列。
  • how='left':告诉 merge 函数使用左连接(即保留 df2 中的所有行)。

merge 函数将生成一个新的数据框 df_merged,其中包含三列:姓名、体重和性别。由于指定了左连接,df_merged 中仍然包含 df2 的所有行。df_merged 还包含了一个新列“年龄”,该列是从 df1 中获取的。

3. 查看结果

让我们查看一下生成的新数据框 df_merged,看看结果是否符合我们的预期。

print(df_merged)

输出如下:

      Name  Weight Gender   Age
0    Alice      60      F  25.0
1      Bob      70      M  35.0
2    David      80      M  55.0
3     Ella      90      F   NaN

可以看到,df_merged 包含了 df2 的所有行,同时增加了一个名为“Age”的新列。在 df_merged 中,“Alice”、“Bob”和“David”行的“Age”列包含了 df1 中的相应值。由于“Ella”在 df1 中不存在,因此该行的“Age”列为空。

4. 总结

在本文中,我们介绍了如何将一个数据框的某些列添加到另一个数据框中。我们使用了 Pandas 的 merge 函数来连接两个数据框,并指定连接键和连接类型。最终生成的新数据框包含了两个数据框中共有的列以及新的列。merge 函数是一种非常强大的数据框操作,可以在数据处理时发挥重要的作用。