首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Python目录中所有excel文件的多列合并

基于Python目录中所有excel文件的多列合并
EN

Stack Overflow用户
提问于 2020-04-20 10:55:40
回答 1查看 198关注 0票数 0

假设我有一个数据帧df和一个目录./,其中包含以下excel文件:

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
df1.xlsx,
df2.xlsx,
df3.xls
...

我想基于公共列datecitydfpath中的所有文件合并。它可以使用以下代码,但还不够简洁。

所以我提出了一个改进代码的问题,谢谢。

代码语言:javascript
复制
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 three-way joining multiple dataframes on columns

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 19:07:53

以下代码可能会起作用:

代码语言:javascript
复制
from functools import reduce

dfs = [df0, df1, df2, dfN]
df_final = reduce(lambda left, right: pd.merge(left, right, on=['date', 'city']), dfs)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61314450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档