日日行,不怕千万里;常常做,不怕千万事|

__username

园龄:2年4个月粉丝:12关注:2

📂python
🔖Python
2023-05-08 11:57阅读: 278评论: 0推荐: 0

转化: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()
posted @   __username  阅读(278)  评论(0编辑  收藏  举报

本文作者:DIVMonster

本文链接:https://www.cnblogs.com/guangzan/p/12886111.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起