Есть много способов сделать это:
Первый способ:
print(df1.join(df2))
Второй способ:
print(pd.concat([df1, df2], axis=1))
Третий способ:
print(df1.merge(df2, left_index=True, right_index=True))
Время:
from timeit import timeit
df1 = pd.DataFrame({
'col_1': [0, 1, 2, 3],
'col_2': [4, 5, 6, 7]})
df2 = pd.DataFrame({
'col_3': [6, 4, 3, 1],
'col_4': [9, 3, 7, 1],
'col_5': [19, 13, 17, 10]})
print('First Solution', timeit(lambda: df1.join(df2), number=10000))
print('Second Solution', timeit(lambda: pd.concat([df1, df2], axis=1), number=10000))
print('Third Solution', timeit(lambda: df1.merge(df2, left_index=True, right_index=True), number=10000))
Второе решение выигрывает:
First Solution 8.202560314644044
Second Solution 7.059892805897661
Third Solution 7.59388310738364
Конечно, когда вам не нужнолучшая производительность, вы также можете использовать первый и третий, я в основном использую первый, потому что он короткий.