Python实现合并excel表格的方法分析


Posted in Python onApril 13, 2019

本文实例讲述了Python实现合并excel表格的方法。分享给大家供大家参考,具体如下:

需求

将一个文件夹中的excel表格合并成我们想要的形式,主要要pandas中的concat()函数

思路

用os库将所需要处理的表格放到同一个列表中,然后遍历列表,依次把所有文件纵向连接起来。
最开始的第一种思路是先拿一个文件出来,然后让这个文件依次去和列表中的剩余文件合并;
第二种是用文件夹中第一个文件和剩余的文件合并,使用range(1,len(file)),可以省去单独取第一个文件的步骤。

遇到的问题

读取

好久没写过这个了,竟然在读取的时候出了很多错误,花了很多时间,下面按时间顺序小结一下
因为之前看到有人直接在pd.read_excel()后面操作,不需要像我以前一样分开操作

#以前的操作方式,需要占用三行
df = pd.read_excel(r'C:.\1.xlsx', sheet_name = '设备检测_空调伴侣')
temp_columns = ['','']
df_1 = df[temp_columns].dropna()
#但我在进阶的过程中,格式弄错了,导致一直报错
df = pd.read_excel(r'C:.\1.xlsx', sheet_name = '设备检测_空调伴侣').[['采集时间']['功率E(W)']]
>>>df = pd.read_excel(r'C:.\1.xlsx', sheet_name = '设备检测_空调伴侣').[['采集时间']['功率E(W)']] ^
SyntaxError: invalid syntax
#发现多了个“.”,用pd读取的excel已经是dataframe的格式了,提取直接用列表的方式就行,加“.”是表示用pd中的函数,完全不同,修正后,再运行,又报错。。。
df = pd.read_excel(r'C:.\1.xlsx', sheet_name = '设备检测_空调伴侣')[['采集时间']['功率E(W)']]
>>>TypeError: list indices must be integers or slices, not str
#发现列表中的子列表元素间忘记用“,”分隔了,修正,再运行
df = pd.read_excel(r'C:.\1.xlsx', sheet_name = '设备检测_空调伴侣')[['采集时间'],['功率E(W)']]
>>>TypeError: unhashable type: 'list'
#说实话,当时心态有点崩,但还是仔细找了找原因,报错,列表是不可拆分的类型。再对比以前的代码,才发现问题所在。
df = pd.read_excel(r'C:.\1.xlsx', sheet_name = '设备检测_空调伴侣')[['采集时间','功率E(W)']]

需要用双层列表,外面那层是用于读取dataframe,里面那层是索引的集合

完整代码

思路1:

# -*- coding: utf-8 -*- 
import numpy as np
import pandas as pd
import os
#改变当前的路径
os.chdir(r'C:\Users\hao\Desktop\重写数据整理\源数据')
#将当前目录下的文件以列表的形式存放
file = os.listdir("./")
df_0 = pd.read_excel(r'C:\Users\hao\Desktop\重写数据整理\143NNCZ01_M_2017-06.xlsx', sheet_name = '设备检测_空调伴侣')[['采集时间','功率E(W)']].dropna()
#print(df_0) #df_0是第一个,依次和循环里面的每一个表做纵向连接
for aa,excel in enumerate(file) :  #enumerate 遍历,aa 返回序列,便于计数和监视
  print('当前正在处理的文件:',excel)
  df_1 = pd.read_excel(excel, sheet_name = '设备检测_空调伴侣')[['采集时间','功率E(W)']].dropna()
  #print(df_1)
  df_0 = pd.concat([df_0,df_1],ignore_index=True, axis=0)
  #print(df_0)
df_0.to_excel(r'C:\Users\hao\Desktop\output3.xlsx', index=None)

思路二:

# -*- coding: utf-8 -*- 
import numpy as np
import pandas as pd
import os
#改变当前的路径
os.chdir(r'C:\Users\hao\Desktop\重写数据整理\源数据')
#将当前目录下的文件以列表的形式存放
file = os.listdir("./")
df_0 = pd.read_excel(file[0], sheet_name = '设备检测_空调伴侣')[['采集时间','功率E(W)']].dropna()
#print(df_0) #df_0是第一个,依次和循环里面的每一个表做纵向连接
for i in range(1,len(file)) :  #enumerate 遍历,aa 返回序列,便于计数和监视
  print('当前正在处理的文件:',file[i],'第{}/{}个'.format(i+1,len(file)+1))
  df_1 = pd.read_excel(file[i], sheet_name = '设备检测_空调伴侣')[['采集时间','功率E(W)']].dropna()
  #print(df_1)
  df_0 = pd.concat([df_0,df_1],ignore_index=True, axis=0)
  #print(df_0)
df_0.to_excel(r'C:\Users\hao\Desktop\output5.xlsx', index=None)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
Python读写Excel文件方法介绍
Nov 22 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
Jun 19 Python
pyqt5使用按钮进行界面的跳转方法
Jun 19 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
简单了解python代码优化小技巧
Jul 08 Python
Python笔试面试题小结
Sep 07 Python
Python使用configparser库读取配置文件
Feb 22 Python
如何在sublime编辑器中安装python
May 20 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
Python爬取某拍短视频
Jun 11 Python
Python Image模块基本图像处理操作小结
Apr 13 #Python
python使用pymongo操作mongo的完整步骤
Apr 13 #Python
Python实现去除图片中指定颜色的像素功能示例
Apr 13 #Python
python mac下安装虚拟环境的图文教程
Apr 12 #Python
python中的print()输出
Apr 12 #Python
Python面向对象程序设计类的多态用法详解
Apr 12 #Python
Python中format()格式输出全解
Apr 12 #Python
You might like
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
php实现的生成排列算法示例
2019/07/25 PHP
JavaScript 事件查询综合
2009/07/13 Javascript
jQuery $.each的用法说明
2010/03/22 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
web.py中调用文件夹内模板的方法
2014/08/26 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
django基于restframework的CBV封装详解
2019/08/08 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
建筑专业自荐信
2013/10/18 职场文书
十八大闭幕感言
2014/01/22 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
2014年英语工作总结
2014/12/20 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
Python序列化模块JSON与Pickle
2022/06/05 Python