实例及操作明细:
在以下EXCEL表格中根据已有的数据:
数据共六列,需要处理的数据是E5-E284,以及F5-F284,
现在要根据以下三个公式:
升跌=当前收盘价-昨日收盘价;
涨跌幅=(当前收盘价-昨日收盘价)/昨日收盘价;
成交量涨跌幅=( 今日成交量-昨日成交量)/昨日成交量;
计算结果,并在原有数据上补充新的三列,
全部代码如下:
import xlrd
import xlwt
xl=xlrd.open_workbook(r'E:\jjx\jjx文档\Mathor cup竞赛题\中青杯\附件:十支股票参数.xlsx')
x2=xlwt.Workbook()
sheet=x2.add_sheet('st6')
table6=xl.sheets()[5]
table7=xl.sheets()[6]
table8=xl.sheets()[7]
table9=xl.sheets()[8]
table10=xl.sheets()[9]
# assert isinstance(table6.(i,4).value,object)
# data=float(((table6.cell(i,4).value)-(table6.cell(i-1,4).value))/(table6.cell(i-1,4).value))
#for i in range (5,284):
#data = float((table6.cell(i, 4).value) - (table6.cell(i - 1, 4).value))
# data = float(((table6.cell(i, 5).value) - (table6.cell(i - 1, 5).value)) / (table6.cell(i - 1, 5).value))
#sheet.write(i,0,data)
for i in range (5,284):
data = float((table10.cell(i,4).value)-(table10.cell(i-1,4).value))
data2 = float(((table10.cell(i,4).value)-(table10.cell(i-1,4).value))/(table10.cell(i-1,4).value))
sheet.write(i, 0, data)
sheet.write(i, 1, data2)
for i in range (5,284):
data3: float=float(((table10.cell(i,5).value)-(table10.cell(i-1,5).value))/(table10.cell(i-1,5).value))
sheet.write(i, 2, data3)
x2.save(r"E:\jjx\jjx文档\Mathor cup竞赛题\中青杯\x2.xlsx")
运行结果:
代码运行正确,生成的表格数据:
代码详解如下:
import xlrd##导入读模块
import xlwt##导入写模块
##打开的原文件路径
xl=xlrd.open_workbook(r'E:\jjx\jjx文档\Mathor cup竞赛题\中青杯\附件:十支股票参数.xlsx')
##创建的新文件存入计算的数据结果
x2=xlwt.Workbook()
##在新的EXCEL表格中添加一个sheet表单并命名
sheet=x2.add_sheet('st6')
##原来的EXCEL表格里有十个表单,用从0开始的数字标示
table6=xl.sheets()[5]
table7=xl.sheets()[6]
table8=xl.sheets()[7]
table9=xl.sheets()[8]
table10=xl.sheets()[9]
##遍历数据列所在的所有行,当前一天从第六行开始,i=5
for i in range (5,284):
data = float((table10.cell(i,4).value)-(table10.cell(i-1,4).value))
data2 = float(((table10.cell(i,4).value)-(table10.cell(i-1,4).value))/(table10.cell(i-1,4).value))
##在创建的新表格中的第一列写入第一个公式的计算结果
sheet.write(i, 0, data)
##在创建的新表格中的第二列中写入第二个公式的计算结果
sheet.write(i, 1, data2)
for i in range (5,284):
data3: float=float(((table10.cell(i,5).value)-(table10.cell(i-1,5).value))/(table10.cell(i-1,5).value))
##在创建的新表格中的第三列写入第三个公式的计算公式
sheet.write(i, 2, data3)
##保存新表格
x2.save(r"E:\jjx\jjx文档\Mathor cup竞赛题\中青杯\x2.xlsx")
注:
1、文件路径自行更改即可;
2、创建的新文件需要已存在;
3、如果需要在原文件执行读和写操作,可以用r+w;
4、写文件路径时必须加引号或者反斜杠转义,否则会出错;
5、Python处理EXCEL时,不能用range()循环超过256的列数,但对于行数是可以的;
6、安装Python之后,再安装Pycharm,并且要导入对应的库方可操作。
Pycharm中导入库的操作流程
File——>Settings——>Project Interpreter,点击加号,搜索需要的库名称,再选择Install等待安装完成即可。
原文链接:https://blog.csdn.net/weixin_43257886/article/details/106438469