Pandas:如何合并两个具有不同列名的 dataframe


您可以使用以下基本语法来合并两个具有不同列名的 pandas DataFrame:

 p.d. merge (df1, df2, left_on=' left_column_name ', right_on=' right_column_name ')

以下示例展示了如何在实践中使用此语法。

示例:合并两个具有不同列名的 Pandas DataFrame

假设我们有以下两个 panda DataFrame:

 import pandas as pd

#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F'],
                    ' points ': [4, 4, 6, 8, 9, 5]})

#view DataFrame
print (df1)

  team points
0 to 4
1 B 4
2 C 6
3 D 8
4 E 9
5 F 5

#create second DataFrame
df2 = pd. DataFrame ({' team_name ': ['A', 'B', 'C', 'D', 'E', 'F'],
                    ' rebounds ': [12, 7, 8, 8, 5, 11]})

#view DataFrame
print (df2)

  team_name rebounds
0 to 12
1 B 7
2 C 8
3 D 8
4 E 5
5 F 11

我们可以使用以下语法来执行内部联接,使用第一个 DataFrame 中的team列和第二个 DataFrame 中的team_name列:

 #merge DataFrames
df3 = pd. merge (df1, df2, left_on=' team ', right_on=' team_name ')

#view result
print (df3)

  team points team_name rebounds
0 A 4 A 12
1 B 4 B 7
2 C 6 C 8
3 D 8 D 8
4 E 9 E 5
5 F 5 F 11

请注意,即使每个 DataFrame 中用于连接的两个列名称不同,我们也能够成功执行内部连接。

请注意,我们还可以使用以下代码从最终合并的 DataFrame 中删除team_name列,因为该列中的值与team列中的值匹配:

 #drop team_name column
df3. drop (' team_name ', axis= 1 , inplace= True )

#view updated DataFrame
print (df3)

  team points rebounds
0 to 4 12
1 B 4 7
2 C 6 8
3 D 8 8
4 E 9 5
5 F 5 11

请注意, team_name列已从 DataFrame 中删除。

相关:如何删除 Pandas 中的列(4 个示例)

其他资源

以下教程解释了如何执行其他常见的 panda 任务:

如何更改 Pandas 中的列顺序
如何重命名 Pandas 中的列
如何在 Pandas 中按名称对列进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注