import glob
import pandas as pd
import tkinter as tk
from tkinter import filedialog
def mkdir(path):
import os
path = path.strip()
path = path.rstrip("\\")
is_exists = os.path.exists(path)
# 判断结果
if not is_exists:
os.makedirs(path)
print(path + ' 创建成功')
return True
else:
return False
print('请选择数据文件夹:')
root = tk.Tk()
root.withdraw()
FolderPath = filedialog.askdirectory() # 看情况自己使用
pd.set_option('display.max_rows', None)
# a new file
# open all the CSV file
# 遍历文件夹下所有csv文件
# TEST_PATH = 'D://桌面//1664329473'
csv_list = glob.glob(f'{FolderPath}\data*.csv')
csv_list_len = len(csv_list)
print('共有%s个CSV文件' % len(csv_list))
if csv_list_len == 0:
input()
mkdir(FolderPath + '//统计')
def get_data():
df_list = []
for csv_file in csv_list:
df = pd.read_csv(csv_file)
df_list.append(df)
df = pd.concat(df_list)
print("Loading...")
return df
data = get_data()
one_csv = pd.read_csv(csv_list[0])
th_list = list(one_csv.columns.values)
while True:
print('-----------------------------')
for index, item in enumerate(th_list):
print(f'{index}.{item}')
num = input("请选择你要分类的字段名称(不能选择按时间分类): ")
if int(num) >= len(th_list):
print("序号不存在! 请输入正确的序号")
else:
try:
category = th_list[int(num)]
res1 = data.groupby(data[category])[category].count()
res = res1.sort_values(ascending=False)
group_by_category = data.groupby(data[category])
try:
with pd.ExcelWriter(FolderPath + '//统计//all.xlsx') as writer:
print("=============>正在统计......")
res.to_excel(writer, sheet_name='统计')
print("=============>完成统计")
for i in group_by_category:
try:
with pd.ExcelWriter(FolderPath + '//统计//' + str(i[0]) + '.xlsx') as tbWriter:
i[1].to_excel(tbWriter, index=False, sheet_name=str(i[0]))
print(i[0], "=============>数据处理成功")
except Exception as e:
print(e)
print(i[0], '\033[1;31m==============>数据处理失败\033[0m')
except PermissionError:
print('i[0]+\033[1;31m无权限写入excel,请检查是否用word 或者 wps打开,如果打开,请关闭后再运行程序\033[0m')
input()
except Exception as e:
print(e)
print("数据处理未完成,程序执行错误!!!")
input()
print('数据处理完毕!请查看Excel')
input("请输入任意键退出窗口")
except Exception as e:
print(e)
break
基于pandas实现excel文档的拆分
于 2022-11-16 09:54:36 首次发布