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的Django框架中实现Hacker News的一些功能
Apr 17 Python
利用Python为iOS10生成图标和截屏
Sep 24 Python
django 发送手机验证码的示例代码
Apr 25 Python
pandas 选择某几列的方法
Jul 03 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
详解将Django部署到Centos7全攻略
Sep 26 Python
python得到单词模式的示例
Oct 15 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
Aug 15 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
python实现最短路径的实例方法
Jul 19 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
python中reload重载实例用法
Dec 15 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安装为Apache DSO
2006/10/09 PHP
PHP新手上路(三)
2006/10/09 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
smarty模板引擎之分配数据类型
2015/03/30 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
如何在python中实现线性回归
2020/08/10 Python
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
入职担保书怎么写
2014/05/12 职场文书
2014年个人委托书范本
2014/10/13 职场文书
学生检讨书范文
2015/01/27 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
欢迎新生标语2015
2015/07/16 职场文书