转化:csv批量转为excel
一个需求,

代码如下:
import pandas as pd
import os
class C_to_EXC:
@staticmethod
def mkdir_folder():
"""创建保存excel的文件夹"""
folder_name = "处理的excel"
if not os.path.exists(folder_name):
os.mkdir(folder_name)
def __bianli(self):
"""遍历csv文件"""
# 指定要遍历的目录
directory = r'C:\Users\43701\Desktop\测试\旧的csv'
# 获取目录下的所有文件名
file_names = os.listdir(directory)
# 遍历文件名列表
for file_name in file_names:
yield file_name.strip('.csv')
def to_excel(self):
""" 将csv转化为excel"""
for i in self.__bianli():
try:
# 读取CSV文件并将其存储为DataFrame对象
df = pd.read_csv(f'{i}.csv') # 目录指定
# 将DataFrame对象写入Excel文件
df.to_excel(rf'C:\Users\43701\Desktop\测试\新的excel\{i}.xlsx', index=False)
print(f'{i}.excel保存完毕')
except Exception as e:
print(f"{i}csv格式需为utf-8--->", e)
def deal_data(self):
"""对excel文件过滤处理 """
# 读取原始 Excel 文件
"""遍历excel文件"""
# 指定要遍历的目录
directory = r'C:\Users\43701\Desktop\测试\excel文件'
# 获取目录下的所有文件名
file_names = os.listdir(directory)
# 遍历文件名列表
for file_name in file_names:
file_name = file_name.strip('.xlsx')
df = pd.read_excel(f'{file_name}.xlsx')
# 将日期列转换为 datetime 格式
df['日期'] = pd.to_datetime(df['日期'])
# 筛选指定日期内的数据
start_date = pd.to_datetime('2022-08-29')
end_date = pd.to_datetime('2022-12-31')
mask = (df['日期'] >= start_date) & (df['日期'] <= end_date)
filtered_df = df.loc[mask]
# 格式化日期列为所需的格式
filtered_df['日期'] = filtered_df['日期'].dt.strftime('%Y-%m-%d')
# 保存筛选后的数据到新的 Excel 文件
with pd.ExcelWriter(f'{file_name}.xlsx') as writer:
filtered_df.to_excel(writer, index=False)
fire = C_to_EXC()
# fire.to_excel()
fire.deal_data()
本文来自博客园,作者:__username,转载请注明原文链接:https://www.cnblogs.com/code3/p/17381317.html

浙公网安备 33010602011771号