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 相关文章推荐
Python3实现的简单验证码识别功能示例
May 02 Python
django ajax json的实例代码
May 29 Python
python实现猜单词小游戏
May 22 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
python读取图片任意范围区域
Jan 23 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
理解深度学习之深度学习简介
Apr 14 Python
解决Python中的modf()函数取小数部分不准确问题
May 28 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
浅析PHP中Collection 类的设计
2013/06/21 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
详解使用mocha对webpack打包的项目进行"冒烟测试"的大致流程
2020/04/27 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
django session完成状态保持的方法
2018/11/27 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
如何用Django处理gzip数据流
2021/01/29 Python
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
煤矿班组长的职责
2013/12/25 职场文书
物流业务员岗位职责
2014/02/08 职场文书
安全生产年活动总结
2014/08/29 职场文书
工程技术员岗位职责
2015/04/11 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
2016年教师节慰问信
2015/12/01 职场文书
合作意向书怎么写
2019/06/24 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
详细分析PHP7与PHP5区别
2021/06/26 PHP