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学习笔记 下载
Feb 10 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
Python文件右键找不到IDLE打开项解决办法
Jun 08 Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
python操作gitlab API过程解析
Dec 27 Python
Python print不能立即打印的解决方式
Feb 19 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
利用python调用摄像头的实例分析
Jun 07 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 深入理解strtotime函数的使用详解
2013/05/23 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
JS数组方法reverse()用法实例分析
2020/01/18 Javascript
Python 利用内置set函数对字符串和列表进行去重的方法
2018/06/29 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
python3.5绘制随机漫步图
2018/08/27 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
python和php学习哪个更有发展
2020/06/17 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
python 深度学习中的4种激活函数
2020/09/18 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
工程造价专业大专生求职信
2013/10/06 职场文书
思想政治自我鉴定
2013/10/06 职场文书
大学专科求职信
2014/07/02 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
英语辞职信怎么写
2015/02/28 职场文书
Python爬虫框架之Scrapy中Spider的用法
2021/06/28 Python
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript