Используйте concat
с DataFrame.add_suffix
:
df = pd.concat([df1, df2.add_suffix('_2')], axis=1)
#alternative solution
#df = df1.join(df2.add_suffix('_2'))
print (df)
A B C D A_2 B_2 C_2 D_2
1 1 2 3 2 1 2 3 2
2 2 2 3 1 4 2 19 1
3 2 3 2 1 2 64 2 1
Другая идея - создать MultiIndex
с помощью параметра keys
, а затем сгладить его с помощьюпонимание списка с помощью f-string
s - вывод немного другой:
df = pd.concat([df1, df2], axis=1, keys=('1','2'))
df.columns = [f'{j}_{i}' for i, j in df.columns]
print (df)
A_1 B_1 C_1 D_1 A_2 B_2 C_2 D_2
1 1 2 3 2 1 2 3 2
2 2 2 3 1 4 2 19 1
3 2 3 2 1 2 64 2 1