pandas 多文件数据合并 |
您所在的位置:网站首页 › 合并多个dat文件 › pandas 多文件数据合并 |
本内容来自:https://gairuo.com
看过来 《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。 本内容来自:https://gairuo.com多文件合并在实际工作中还是比较常见的,汇总表往往费时费力,如果用代码帮我们去做就省力很多,而且还可以复用,就会节省大量时间。 多文件合并最简单的方法是先单个把数据取出现来,然后进行合并。 df1 = pd.DataFrame(data1) df2 = pd.read_excel('tmp.xlsx') df3 = pd.read_csv('tmp.csv') merged_df = pd.concat([df1, df2, df3])注意,不要一个一个地去用 concat,这样性能会很差,可以先把所有表格加到列表里,一次性合并: frames = [ process_your_file(f) for f in files ] result = pd.concat(frames)一个包含多个 Sheet 的 Excel 合并成一个 DataFrame: dfm = pd.read_excel('team.xlsx', sheet_name=None) pd.concat(dfm.values()) pd.concat(dfm) # 保留 Sheet 名作为一级索引 读取目录文件如果文件存在一个目录下,推荐方法: import glob # 取出目录下所有 xlsx 格式文件 files = glob.glob("data/*.xlsx") cols = ['记录ID', '开始时间', '名称'] # 只取这些列 # 列表推导出对象 dflist = [pd.read_excel(i, usecols=cols) for i in files] df = pd.concat(dflist) # 合并其他方法: # 多个文件 pd.concat(map(pd.read_csv, ['data/d1.csv', 'data/d2.csv', 'data/d3.csv'])) pd.concat(map(pd.read_excel, ['data/d1.xlsx', 'data/d2.xlsx', 'data/d3.xlsx'])) # 目录下所有文件 from os import listdir filepaths = [f for f in listdir("./data") if f.endswith('.csv')] df = pd.concat(map(pd.read_csv, filepaths)) # 方法 2 import glob df = pd.concat(map(pd.read_csv, glob.glob('data/*.csv'))) df = pd.concat(map(pd.read_excel, glob.glob('data/*.xlsx'))) 追加列合并如果需要使用pd.merge()追加列合并时,由于此方法只能合并两个 DataFrame,因此可以用 reduce 来操作完成: from functools import reduce df = reduce(lambda a, b: pd.merge(a, b, on=['记录ID']), dflist)只要熟练使用其中一个方法就行。 相关内容 pandas 根据指定列按列合并目录中的 Excel 2020-12-29 10:41:01 数据连接 concat pandas 教程 数据追加 df.append >更新时间:2021-12-06 08:11:34 标签:pandas 合并 文件 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |