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 正则式 概述及常用字符
May 07 Python
举例讲解Python面相对象编程中对象的属性与类的方法
Jan 19 Python
老生常谈Python基础之字符编码
Jun 14 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
对Python中DataFrame按照行遍历的方法
Apr 08 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
python爬虫开发之selenium模块详细使用方法与实例全解
Mar 09 Python
python多进程下的生产者和消费者模型
May 07 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
python 实现一个简单的线性回归案例
Dec 17 Python
python Protobuf定义消息类型知识点讲解
Mar 02 Python
matlab xlabel位置的设置方式
May 21 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
PHP 网页过期时间的控制代码
2009/06/29 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
jquery 入门教程 [翻译] 推荐
2009/08/17 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
JavaScript判断按钮被点击的方法
2015/12/13 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
python中base64加密解密方法实例分析
2015/05/16 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
详解用selenium来下载小姐姐图片并保存
2021/01/26 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
阿迪达斯新加坡官方网站:adidas新加坡
2019/12/06 全球购物
卖房协议书
2014/04/11 职场文书
新年寄语大全
2014/04/12 职场文书
物流专业求职信
2014/06/30 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang