Скажем, у меня есть фрейм данных df
и каталог ./
, в котором есть следующие файлы excel:
path = './'
for root, dirs, files in os.walk(path):
for file in files:
if file.endswith(('.xls', '.xlsx')):
print(os.path.join(root, file))
# dfs.append(read_dfs(os.path.join(root, file)))
# df = reduce(lambda left, right: pd.concat([left, right], axis = 0), dfs)
Out:
df1.xlsx,
df2.xlsx,
df3.xls
...
Я хочу объединить df
со всеми файлами из path
на основе общих столбцов date
и city
. Это работает со следующим кодом, но это не достаточно кратко.
Итак, я поднимаю вопрос об улучшении кода, спасибо.
df = pd.merge(df, df1, on = ['date', 'city'], how='left')
df = pd.merge(df, df2, on = ['date', 'city'], how='left')
df = pd.merge(df, df3, on = ['date', 'city'], how='left')
...
Ссылка:
pandas трехстороннее объединение нескольких фреймов данных в столбцах