📜  连接 Pandas 数据帧时如何添加标识符列?(1)

📅  最后修改于: 2023-12-03 14:57:57.611000             🧑  作者: Mango

连接 Pandas 数据帧时如何添加标识符列?

在 Pandas 中,我们可以使用 merge 函数来连接两个或多个数据帧。如果我们想要将这些数据帧连接起来并添加标识符列来指示它们从哪个数据帧来的话,可以通过以下步骤来实现。

首先,我们需要使用 assign 函数来为每个数据帧添加一个新的列,并将其命名为标识符列。在这个示例中,我们称其为 source

import pandas as pd

# 创建两个数据帧 df1 和 df2
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': [7, 8, 9]})

# 为数据帧 df1 和 df2 添加标识符列
df1 = df1.assign(source='df1')
df2 = df2.assign(source='df2')

print(df1)

# 输出:
#    A  B source
# 0  1  4    df1
# 1  2  5    df1
# 2  3  6    df1

print(df2)

# 输出:
#    A  B source
# 0  4  7    df2
# 1  5  8    df2
# 2  6  9    df2

现在,我们已经为每个数据帧添加了标识符列,接下来我们可以使用 merge 函数将它们连接起来。在连接过程中,我们可以将标识符列作为连接键,并使用 how='outer' 参数指定为外连接。

# 使用 merge 函数将 df1 和 df2 连接起来,并使用 source 列作为连接键,指定为外连接
df_merge = pd.merge(df1, df2, on='source', how='outer')

print(df_merge)

# 输出:
#    A_x  B_x source  A_y  B_y
# 0  1.0  4.0    df1  4.0  7.0
# 1  2.0  5.0    df1  5.0  8.0
# 2  3.0  6.0    df1  6.0  9.0

现在,我们可以看到,我们已经成功地将两个数据帧连接起来,并使用 source 列作为标识符列。在连接结果中,我们可以看到我们的标识符列 source,以及来自 df1df2 的其他列。

总结一下,要在连接 Pandas 数据帧时添加标识符列,我们需要:

  1. 使用 assign 函数为每个数据帧添加一个新的列,称之为标识符列,以标识数据来源。
  2. 使用 merge 函数将多个数据帧连接起来,并使用标识符列作为连接键。
  3. 使用 how='outer' 参数指定为外连接,以确保连接结果包含所有数据帧中的行。