Вы можете использовать следующий базовый синтаксис для объединения двух pandas DataFrames с разными именами столбцов:
pd.merge(df1, df2, left_on='left_column_name', right_on='right_column_name')
В следующем примере показано, как использовать этот синтаксис на практике.
Пример: объединение двух фреймов данных Pandas с разными именами столбцов
Предположим, у нас есть следующие два Pandas DataFrames:
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 A 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 A 12
1 B 7
2 C 8
3 D 8
4 E 5
5 F 11
Мы можем использовать следующий синтаксис для выполнения внутреннего соединения, используя столбец team в первом фрейме данных и столбец 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.
Обратите внимание, что мы также можем использовать следующий код, чтобы удалить столбец team_name из окончательного объединенного DataFrame, поскольку значения в этом столбце совпадают со значениями в столбце team :
#drop team_name column
df3. drop('team_name', axis= 1 , inplace= True )
#view updated DataFrame
print(df3)
team points rebounds
0 A 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)
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как изменить порядок столбцов в Pandas
Как переименовать столбцы в Pandas
Как сортировать столбцы по имени в Pandas