这篇教程Python批量处理Excel文件写得很实用,希望能帮到您。
本文介绍了利用Python批量处理Excel文件的一种方法,超实用,超简单。轻松可实现,节省时间不只一点点。文章不长,功能超强。
上菜。
某一天,老板丢个我一个任务。需要将400多张表按照一定条件进行处理。顿时觉得头大,倒不是数据处理有多么复杂,只是太费时间。
每一张数据表大概长这样:
需要 删除7,8,9,10,11。并且删除4列中小于100,大于200的值。接到任务就上手一试,打开Excel,筛选,删除,保存关闭,一气呵成,时间已过去2分钟。
一共497张表。一张表2分钟,497张表就是994分钟,就是17个小时,也就是上班不眠不休,不浪费一秒钟的进行处理,也需要2天时间。这肯定是不可能的。机智的我绝不可能这样浪费时间,这样劳累自己。
我辛辛苦苦花费时间自学的Python要登场了,养兵千日,用兵一时。如今也该是你报恩的时候儿了。
于是,开始撸代码。
撸代码前理一遍逻辑,想想有什么办法实现批量处理每个Excel文件。灵光一现,先获取497个Excel文件的集合,再创建一个循环,读取集合中的每一个对象,对每一个对象进行处理,输出文件。逻辑上没有什么漏洞。接下来写代码:
#导入包
import pandas as pd
import os
import xlwt
#获取文件集合
filename = os.listdir(r'C:\Users\Administrator\Desktop\test')
#创建循环,遍历每一个Excel文件
for i in range(len(filename)):
#读取文件
df = pd.read_excel('C://Users//Administrator//Desktop//jkr//' + filename[i])
#按照条件处理文件
df = df.drop(['7','8','9','10','11'],axis=1)
df = df.drop(df[(df['4'] < 100) | (df['4'] > 200)].index)
#将处理好的数据导出
df.to_excel('C://Users//Administrator//Desktop//test//' + filename[i])
print(filename[i]+'********文件处理成功')
OK,跑了一遍,奇迹出现了。497张表完完整整,一个不落的处理完成,用时没有超过3分钟。我不自觉的笑出了声。
接下来将代码优化一下,完整代码如下:
import pandas as pd
import os
import xlwt
def main():
filename = os.listdir(r'C:\Users\Administrator\Desktop\test')
for i in range(len(filename)):
try:
df = pd.read_excel('C://Users//Administrator//Desktop//test//' + filename[i])
df = df.drop(['7','8','9','10','11'],axis=1)
df = df.drop(df[(df['4'] < 100) | (df['av_mag'] > 200)].index)
df.to_excel('C://Users//Administrator//Desktop//test//' + filename[i])
print(filename[i]+'********文件处理成功')
except Exception as e:
pass
continue
if __name__ == "__main__":
main() Python实现对csv的批量处理并保存 df.drop()函数删除多行或者多列 |