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 多线程的实例详解
Sep 07 Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
pycharm新建一个python工程步骤
Jul 16 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
pycharm安装深度学习pytorch的d2l包失败问题解决
Mar 25 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中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP count()函数讲解
2019/02/03 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
Ext 今日学习总结
2010/09/19 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
python清除字符串里非数字字符的方法
2015/07/02 Python
Swift 3.0在集合类数据结构上的一些新变化总结
2016/07/11 Python
深入解析神经网络从原理到实现
2019/07/26 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
python getopt模块使用实例解析
2019/12/18 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
会计出纳岗位职责
2013/12/25 职场文书
公司担保书格式范文
2014/05/12 职场文书
护理专业自荐书
2014/06/04 职场文书
党支部三会一课计划
2014/09/24 职场文书
2015年度保密工作总结
2015/04/24 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书