python 使用pandas 处理 EXCEL 合并
工作里面有些很恶心的东西。就是合并excel, 所以为了解放自己,开始执行程序操作。
这次主要是简单的,一次性操作。 后续跟进。
1 遍历文件夹
2 读取添加至df
3 输出至本地文件夹。
里面遇到的困难,大多都是一些读取,存储的操作,本质上,这个行文逻辑没有什么太多可讲的。
还是学习下pandas ,减轻工作量趴。 受不了
# _*_coding:utf-8 _*_
import pandas as pd
import numpy as np
import os
import time
# 主要是简单合并excel, 太多了。麻烦的很,不想搞 。
# 地址
# 修改一下,换一个新的保存地址。最好加上时间
path = r"C:\Users\1\Desktop\工作\202106\test"
path1 = r"C:\Users\1\Desktop\工作\202106\save"
# 当前时间格式,很有用。
tim = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
# print(path + '\\' + tim + '.xlsx')
# print(a)
filenames = os.listdir(path)
df = pd.DataFrame()
# 遍历需要文件夹所有文件
for i in filenames:
# print (path + '\\'+ i ) -- 验证地址
data = pd.read_excel(path + '\\' + i)
df = df.append(data)
adres = path1 + '\\' + tim + '.xlsx'
print(adres)
df.to_excel(adres)
修改版本: 分开写,会比较好维护些。处理就处理,保存就保存。虽然很简单。没有必要这样做,但是这样写的好处是培养思维。
# _*_coding:utf-8 _*_
import pandas as pd
import numpy as np
import os
import time
# 主要是简单合并excel, 太多了。麻烦的很,不想搞 。
# 地址
# 修改一下,换一个新的保存地址。最好加上时间
class yuchuli:
# 初始化数据
def __init__(self):
self.pd = pd
# 开始地址
self.path = r"C:\Users\1\Desktop\工作\202106\test"
# 输出保存地址
self.save = r"C:\Users\1\Desktop\工作\202106\save"
# 时间格式
self.tim = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
# 数据合并
def get_data(self):
filenames = os.listdir(self.path)
df = self.pd.DataFrame()
for i in filenames:
# print (path + '\\'+ i ) -- 验证地址
data = pd.read_excel(self.path + '\\' + i)
df = df.append(data)
return df
# 数据处理
def deal_data(self):
df = self.get_data()
str = 'h'
# 去除重复
df1 = df.drop_duplicates()
# 增加筛选 特定文档。 不想筛选就注释掉。
if '营业状态' in df.columns:
str = '营业状态'
df1 = df1[df1['营业状态'].isin(['正常营业', '未上线', '歇业'])]
a = 1
return df1, str
# 保存数据
def save_data(self):
# 这样可以少跑一次速度更快。获取数据存起来。
data = self.deal_data()
# 数组
data1 = data[0]
# 营业状态
str = data[1]
# str = 'h'
# if '营业状态' in data.columns:
# str = '筛选过后'
addr = self.save + '\\' + str + self.tim + '.xlsx'
print(addr)
data1.to_excel(addr)
if __name__ == '__main__':
yuchuli().save_data()
a = 1

浙公网安备 33010602011771号