pandas合并excel
工作中有个需求需要把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相关推荐
- python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例
前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...
- pandas合并excel的多个sheet
表格内容如下: 现在要做的是,把6个sheet合并成一个表格. 1.excel合并工作表 首先,探讨一下直接用excel来解决这个问题,在excel2016及以后的版本中,有一个强大的PowerQue ...
- 利用pandas合并excel文件
临时想要合并一些excel文件,发现用pandas还挺方便.但觉得速度有些慢,可以改进.先这样吧,:-D. # -*- coding: utf-8 -*- """ Cre ...
- python使用pandas合并excel文件并去重复
话不多说,直接贴代码 import pandas as pd import os import time# 去重复 def drop_duplicates(df):# 完全重复则删除df = df.d ...
- excel去掉一行文字中的逗号合并在一起_Python使用pandas库五行代码合并excel
使用用Python快速合并excel,相比使用VBA代码更简洁,但是使用到 glob 和pandas 两个库,其中glob为标准库无需安装,pandas需要pip安装.代码如下: import 代码解 ...
- python对数据进行合并的函数_利用Python pandas对Excel进行合并的方法示例
前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...
- python pandas合并多个excel_python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件)...
# python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件) import tkinter as tk from tkinter import filedial ...
- pandas合并文件夹下的excel文件
研究背景: 由于工作中每天需要计算遗留工单,但工单创建的时间不确定,需要导出近半年的数据进行筛选,而系统一次只能到处一个月的数据,格式为excel格式文件,文件大学为10MB左右,每个文件数据量2万行 ...
- python pandas合并单元格_利用Python pandas对Excel进行合并的方法示例
前言 在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下. 博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大 ...
- Pandas批量拆分Excel与合并Excel
Pandas批量拆分Excel与合并Excel 将一个大Excel等份拆成多个Excel 合并多个小Excel到一个大Excel F盘一个Excel表格,具体路径是 F:\Temp\data\work ...
最新文章
- Win10如何找出占用硬盘空间大的文件及怎么删除
- 计算机视觉与深度学习 | 基于Matlab提取SIFT特征点(源代码)
- mysql中sql语句使用_mysql数据库中用到sql语句
- beego——URL构建
- 编码——隐匿在计算机软硬件背后的语言
- 文件——rstrip() 、lstrip()和 strip()、zip() 函数
- C语言实验报告排错分析,C语言实验报告模板剖析.doc
- delphi微信云支付,D7~XE10可用
- 微商爆粉2.0全自动批量加人模拟手动操作
- 计算机应用公式基础教学教案,《终稿[定稿]大学计算机应用基础全册教案版》...
- 计算机开机后 打不开软件,电脑开机后软件打不开怎么回事
- 移动APP云测试平台测评分析
- 不可思议有氧机器人_不思议迷宫奇怪的机器人怎么得?不思议迷宫奇怪的机器人获取一览...
- 文字符号设计方法整理1--笔画字形(体)处理方法
- 仙童半导体拒绝华润等收购 担忧难获监管批准
- 写给Python社群的第2课:Python逻辑语句,天天要写的 if 和 while
- 关于图灵测试和中文屋Chinese room的理解
- VS2010 正式版下载链接
- windows VC2010编译libwebsockets
- NVIDIA AGX 联网