📅  最后修改于: 2023-12-03 14:57:57.611000             🧑  作者: Mango
在 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
,以及来自 df1
和 df2
的其他列。
总结一下,要在连接 Pandas 数据帧时添加标识符列,我们需要:
assign
函数为每个数据帧添加一个新的列,称之为标识符列,以标识数据来源。merge
函数将多个数据帧连接起来,并使用标识符列作为连接键。how='outer'
参数指定为外连接,以确保连接结果包含所有数据帧中的行。