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从零开始撸一个区块链
Mar 14 Python
浅谈Python基础—判断和循环
Mar 22 Python
Flask配置Cors跨域的实现
Jul 12 Python
Django基础三之视图函数的使用方法
Jul 18 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
python代码实现猜拳小游戏
Nov 30 Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 Python
Python机器学习之KNN近邻算法
May 14 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
Apr 11 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 转义使用详解
2013/07/15 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
js实现验证码干扰(动态)
2021/02/23 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
python 调试冷知识(小结)
2019/11/11 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
母亲七十大寿答谢词
2014/01/18 职场文书
会议活动邀请函
2014/01/27 职场文书
团日活动策划书
2014/02/01 职场文书
销售助理岗位职责
2014/02/21 职场文书
导师就业推荐信范文
2014/05/22 职场文书