Используйте concat
с параметрами keys
и axis=1
:
df1 = pd.read_csv(file1, index_col=['date'])
df2 = pd.read_csv(file2, index_col=['date'])
df = pd.concat([df1, df2], axis=1, keys=('csv1','csv2'))
print (df)
csv1 csv2
A B C A B C
date
1991 1 2 3 4 5 6
И затем выполните итерацию на втором уровне MultiIndex
со сглаженными столбцами и запишите в файлы:
for i, g in df.groupby(level=1, axis=1):
g.columns = [f'{b}_{a}' for a, b in g.columns]
g.to_csv(f'{i}.csv')
print (g)
A_csv1 A_csv2
date
1991 1 4
B_csv1 B_csv2
date
1991 2 5
C_csv1 C_csv2
date
1991 3 6
Если файлы находятся в одной папке:
import glob
files = glob.glob('files/*.csv')
df = pd.concat([pd.read_csv(f) for f in files], axis=1, keys=files)
print (df)