工作中有个需求需要把100多个excel文件合并成一个,并按照指定的列排序,查了查,用pandas处理做好。
备注:111个excel文件,总共有200多万条数据,101M数据
代码:

import os
import sys
import pandas as pd
import datetimeBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)EXECL_DIRS = ["xiaoying", "xiaoshu"]     # xlsx文件所在的目录
EXECL_FIELS_MAP = {"xueqian": "学前包含图片的题目", "xiaoyu": "小语包含图片的题目", "xiaoying": "小英包含图片的题目", "xiaoshu": "小数包含图片的题目"}def combine_execl_files():"""组合execl:return: """def deal_url(val):if not val.startswith('"'):val = '"'+val+'"'return valfor item in EXECL_DIRS:dfs = []print("begin to deal %s" % item)start_time = datetime.datetime.now()path_dir = os.path.join(BASE_DIR, 'tools/%s/'% item)files = os.listdir(path_dir)for file in files:file_path = os.path.join(path_dir, file)try:df = pd.read_excel(file_path)if not df.empty:df['图片url'] = df['图片url'].apply(deal_url)dfs.append(df)except Exception as exc:print("error file_path: %s     error:%s" % (file_path, str(exc)))print("total df number: %s" % len(dfs))new_df = pd.concat(dfs, ignore_index=True)new_df = new_df.sort_values(by=['图片url'])      # 按某一列进行排序print("total rows: %s   total cost time:%s " % (len(new_df), datetime.datetime.now()-start_time))df_cnt = len(new_df)step = 500000          # 数据超过200万条,故分批处理numbers = int(df_cnt/step) + 1for i in range(1, numbers+1):start = (i-1) * stepend = i * stepprint("start:%s   end:%s " % (start, end))sub_df = new_df[start:end]a_file_name = os.path.join(BASE_DIR, 'tools/%s_%s.xlsx' % (EXECL_FIELS_MAP.get(item), i))sub_df.to_excel(a_file_name, index=False, encoding='utf8')print("write data to excel success !!!")if __name__ == "__main__":combine_execl_files()

pandas合并excel相关推荐

  1. python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  2. pandas合并excel的多个sheet

    表格内容如下: 现在要做的是,把6个sheet合并成一个表格. 1.excel合并工作表 首先,探讨一下直接用excel来解决这个问题,在excel2016及以后的版本中,有一个强大的PowerQue ...

  3. 利用pandas合并excel文件

    临时想要合并一些excel文件,发现用pandas还挺方便.但觉得速度有些慢,可以改进.先这样吧,:-D. # -*- coding: utf-8 -*- """ Cre ...

  4. python使用pandas合并excel文件并去重复

    话不多说,直接贴代码 import pandas as pd import os import time# 去重复 def drop_duplicates(df):# 完全重复则删除df = df.d ...

  5. excel去掉一行文字中的逗号合并在一起_Python使用pandas库五行代码合并excel

    使用用Python快速合并excel,相比使用VBA代码更简洁,但是使用到 glob 和pandas 两个库,其中glob为标准库无需安装,pandas需要pip安装.代码如下: import 代码解 ...

  6. python对数据进行合并的函数_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  7. python pandas合并多个excel_python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件)...

    # python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件) import tkinter as tk from tkinter import filedial ...

  8. pandas合并文件夹下的excel文件

    研究背景: 由于工作中每天需要计算遗留工单,但工单创建的时间不确定,需要导出近半年的数据进行筛选,而系统一次只能到处一个月的数据,格式为excel格式文件,文件大学为10MB左右,每个文件数据量2万行 ...

  9. python pandas合并单元格_利用Python pandas对Excel进行合并的方法示例

    前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...

  10. Pandas批量拆分Excel与合并Excel

    Pandas批量拆分Excel与合并Excel 将一个大Excel等份拆成多个Excel 合并多个小Excel到一个大Excel F盘一个Excel表格,具体路径是 F:\Temp\data\work ...

最新文章

  1. Win10如何找出占用硬盘空间大的文件及怎么删除
  2. 计算机视觉与深度学习 | 基于Matlab提取SIFT特征点(源代码)
  3. mysql中sql语句使用_mysql数据库中用到sql语句
  4. beego——URL构建
  5. 编码——隐匿在计算机软硬件背后的语言
  6. 文件——rstrip() 、lstrip()和 strip()、zip() 函数
  7. C语言实验报告排错分析,C语言实验报告模板剖析.doc
  8. delphi微信云支付,D7~XE10可用
  9. 微商爆粉2.0全自动批量加人模拟手动操作
  10. 计算机应用公式基础教学教案,《终稿[定稿]大学计算机应用基础全册教案版》...
  11. 计算机开机后 打不开软件,电脑开机后软件打不开怎么回事
  12. 移动APP云测试平台测评分析
  13. 不可思议有氧机器人_不思议迷宫奇怪的机器人怎么得?不思议迷宫奇怪的机器人获取一览...
  14. 文字符号设计方法整理1--笔画字形(体)处理方法
  15. 仙童半导体拒绝华润等收购 担忧难获监管批准
  16. 写给Python社群的第2课:Python逻辑语句,天天要写的 if 和 while
  17. 关于图灵测试和中文屋Chinese room的理解
  18. VS2010 正式版下载链接
  19. windows VC2010编译libwebsockets
  20. NVIDIA AGX 联网

热门文章

  1. 原来这才是睿至大数据的业务拼图
  2. 装系统时的UEFI模式
  3. JavaScript 移动端点击事件延迟问题
  4. TCP非持久连接、持久性连接(流水线方式、非流水线方式)例题
  5. windows远程连接不能复制粘贴
  6. c#日期转换英文月份
  7. Pandas_规整数据_转换数据_melt()
  8. 观光公交(codevs 1139)题解
  9. 如何把vs2003转化成vs2005
  10. 多双系统下蓝牙键盘鼠标的共享配对问题解决办法:win + debian + arch~IRK、LTK、ERand、EDIV、CSRK