📜  python - 在具有不同名称的变量上匹配两个 df - Python (1)

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

匹配两个具有不同名称的 pandas DataFrame

如果您有两个具有不同列名称的 pandas DataFrame,并且需要通过列匹配它们,则可以使用 merge() 函数。

假设我们有两个 DataFrame 分别为 df1df2,这里是如何使用 merge() 函数在它们之间执行列匹配:

merged_df = df1.merge(df2, left_on='col1', right_on='col2')

其中,left_onright_on 参数分别指定要匹配的列名称。如果列名称在两个 DataFrame 中不同,则需要使用这些参数。

此外,还有其他参数可以传递给 merge() 函数以定制匹配方式。例如,您可以使用 how 参数指定要执行的连接类型(内部连接,左连接等)。

以下是一个完整示例:

import pandas as pd

# 创建第一个 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3, 4],
                    'B': ['foo', 'bar', 'baz', 'qux']})

# 创建第二个 DataFrame
df2 = pd.DataFrame({'C': ['foo', 'bar', 'baz', 'quux'],
                    'D': [10, 20, 30, 40]})

# 通过列匹配合并 DataFrame
merged_df = df1.merge(df2, left_on='B', right_on='C', how='inner')

print(merged_df)

输出结果如下:

   A    B    C   D
0  1  foo  foo  10
1  2  bar  bar  20
2  3  baz  baz  30

可以看到,此示例将 df1df2 通过列名 BC 进行列匹配,并且只返回匹配的行。