股票数据处理-十字星

 遍历文件夹下的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("恭喜你,合并完成!")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值