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 相关文章推荐
py中的目录与文件判别代码
Jul 16 Python
Python脚本实现下载合并SAE日志
Feb 10 Python
python在windows命令行下输出彩色文字的方法
Mar 19 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
Python实现京东秒杀功能代码
May 16 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
python wxpython 实现界面跳转功能
Dec 17 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
python tqdm实现进度条的示例代码
Nov 10 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 Python
python Matplotlib基础--如何添加文本和标注
Jan 26 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语法速查表
2007/01/02 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
PHP children()函数讲解
2019/02/03 PHP
动态加载iframe
2006/06/16 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
js实现微博发布小功能
2017/01/12 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
python实现简单爬虫功能的示例
2016/10/24 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
应用数学专业求职信
2014/03/14 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
查摆问题整改措施
2014/10/24 职场文书
2014年招生工作总结
2014/11/26 职场文书
药店收银员岗位职责
2015/04/07 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
各国货币符号大全
2022/02/17 杂记
PyTorch中的torch.cat简单介绍
2022/03/17 Python
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL