整理多个excel文件是家常便饭,刚开始整理得头都痛。
于是,想找偷懒的方法一步合并。
Finally, 写了个小脚本搞定。
思路很简单,这里是我平时用的,给excel新增了列,展示数据,所以看起来会繁复一点,不需要就直接注释掉,快很多简洁很多。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time: 2020/1/10 22:08
# author: Hush
import os
import glob
import pandas as pd
# 先建立一个空的二维表
yewu_data = pd.DataFrame()
row_num = 0
# 下面是我的文件夹位置,我在桌面的sale文件夹下,放了5个文件夹,分别是5家店铺的销售数据。
# 5个文件夹里又各自放了每家店铺在12月份1-31号每天的销售报表。
folder_path = r'C:Users…Desktopsale*' #这里是大文件夹的位置
folder = glob.glob(folder_path) # 读取文件夹里放了什么东西,因为我写了*,所以什么都会被认出来
for i in folder:
# print(i)
excel_list = os.listdir(i)
print('文件夹%s下有%d张excel表:' % (str(i.split('\')[5]), len(excel_list)), excel_list)
for j in excel_list:
# print(j)
excel_path = i + '\' + str(j)
data1 = pd.read_csv(excel_path, skiprows=0)
rows = data1.shape[0]
row_num = row_num + rows
# 新增两个变量,如果你不新增,直接删掉
data1['店铺'] = excel_path.split('\')[5]
data1['时间'] = '2020-01-' + str(j.split('.')[0])
# print(row_num)
yewu_data = pd.concat([yewu_data, data1])
# print(yewu_data)
yewu_data.to_excel(folder_path.replace(r'*', '') + r'all.xlsx', index=False)
print('表演完毕')
print('此次新增行数:', row_num)
如果有更好的方法,欢迎告诉我哦