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编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
python中正则的使用指南
Dec 04 Python
python下载文件记录黑名单的实现代码
Oct 24 Python
Django+JS 实现点击头像即可更改头像的方法示例
Dec 26 Python
set在python里的含义和用法
Jun 24 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
Django用户认证系统 组与权限解析
Aug 02 Python
使用python切片实现二维数组复制示例
Nov 26 Python
django 解决自定义序列化返回处理数据为null的问题
May 20 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
Python爬虫实战之爬取携程评论
Jun 02 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中在foreach中使用foreach ($arr as &$value) 这种类型的解释
2013/06/24 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
jquery图片切换插件
2015/03/16 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
Python的Urllib库的基本使用教程
2015/04/30 Python
python奇偶行分开存储实现代码
2018/03/19 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Python函数基本使用原理详解
2020/03/19 Python
python实现简单学生信息管理系统
2020/04/09 Python
keras实现多种分类网络的方式
2020/06/11 Python
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
销售副总经理岗位职责
2013/12/11 职场文书
生物学学生自我评价
2014/01/17 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
后备干部推荐材料
2014/12/24 职场文书
大学生英文求职信范文
2015/03/19 职场文书
订货会主持词
2015/07/01 职场文书
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android