遍历文件夹下的excel数据,处理数据得出十字星的日期,并将结果保存到新的文件
目前没解决的问题:保存到一个新文件的不同sheet中,当前以实现的时合并到一个sheet中
解决思路:用openpyxl创建新的sheet并用for循环写入指定位置
import pandas as pd
import os
import re
from openpyxl import Workbook
# pd.set_option('display.max_columns', None)
dir='E:/Desktop/股票数据/原数据'
dir_new='E:/Desktop/股票数据/结果'
# wb=Workbook()
# wb.save(dir+'/十字星.xlsx')
#筛选出结果,并保存到指定文件夹
for file in os.listdir(dir):
file_dir=os.path.join(dir,file)
# print(file_dir)
df = pd.read_excel(file_dir, usecols=['日期', '名称', '开盘价(元)', '收盘价(元)', '最高价(元)', '最低价(元)'])
#数据处理,计算和筛选
df['收盘/开盘']=abs(df['收盘价(元)']/df['开盘价(元)']-1)*100
df['上振幅']=df['最高价(元)']/df['开盘价(元)']-1
df['下振幅']=df['开盘价(元)']/df['最低价(元)']-1
df=df[df['收盘/开盘']==0]
df=df[df['上振幅']>0.005]
# df=df[df['下振幅']>0.005]
#
# print(df[['日期','收盘/开盘','上振幅','下振幅']])
output_file=os.path.join(dir_new,'十字星-'+f'{file}')
writer = pd.ExcelWriter(output_file, engine='openpyxl')
df.to_excel(writer,sheet_name=file, index=False)
writer.save()
data_list=[]
for filename in os.listdir(dir_new):
if filename.startswith('十字星'):
print(filename)
data_list.append(pd.read_excel(os.path.join(dir_new,filename)))
# concat合并Pandas数据
data_all =pd.concat(data_list)
# 将 DataFrame 保存为 excel 文件
data_all.to_excel(os.path.join(dir_new,'result.xlsx'),index=False)
# 查看 DataFrame 的行数和列数。
rows = data_all.shape
print("查看行数与列数:", rows)
print("恭喜你,合并完成!")