【发布时间】:2020-08-02 11:35:03
【问题描述】:
假设我有一个数据框 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)
输出:
df1.xlsx,
df2.xlsx,
df3.xls
...
我想基于公共列 date 和 city 将 df 与来自 path 的所有文件合并。它适用于以下代码,但不够简洁。
所以我提出一个改进代码的问题,谢谢。
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')
...
参考:
【问题讨论】:
标签: python-3.x pandas dataframe merge