ここでは、「「BeautifulSoup」を用いた株価のスクレイピング」の発展として終値に着目して偏差算出を行ってみました。
行ったこと
「「BeautifulSoup」を用いた株価のスクレイピング」の発展をさせて終値に着目して偏差算出を行ってみました。
上記のファイルの「close」を読み込み、平均、偏差を算出して、excelファイルに追記するまでを行いました。
プログラム
import openpyxl
#1---ファイルの読み出し
filename='9024-2020.xlsx'
wb = openpyxl.load_workbook(filename)
ws = wb.active
#2---値の取得
values = []
for cell in ws['E']:
values.append(cell.value)
#3---文字削除
del values[0]
#4---平均値算出
average_value = sum(values)/len(values)
ws['H1']="average"
ws['H2']= int(average_value)
ws['I1']="deviation"
#5---偏差算出
row_num = 0
for cell in values:
row_num += 1
dev = int(cell) - int(average_value)
ws.cell(row=row_num+1,column=9).value = dev
#6---保存
wb.save(filename)
プログラムは上記になります。
それでは解説していきます。
#1---ファイルの読み出し
filename='9024-2020.xlsx'
wb = openpyxl.load_workbook(filename)
ws = wb.active
はじめにファイルとシートを読み込みます。
#2---値の取得
values = []
for cell in ws['E']:
values.append(cell.value)
2の部分ではE列の値を読み込み、valuesに入れています。
#3---文字削除
del values[0]
3の部分では、最初の「close」という文字を削除しています。
#4---平均値算出
average_value = sum(values)/len(values)
ws['H1']="average"
ws['H2']= int(average_value)
ws['I1']="deviation"
average_valueで平均値を算出しています。下の「ws[‘H2’]」でこの値を書き込んでいます。
#5---偏差算出
row_num = 0
for cell in values:
row_num += 1
dev = int(cell) - int(average_value)
ws.cell(row=row_num+1,column=9).value = dev
求めた平均を使って偏差を算出しています。算出した偏差は「ws.cell(row=row_num+1,column=9).value」で書き込んでいます。
#6---保存
wb.save(filename)
最後に保存して終了です。
結果
平均と偏差が書き込まれています。とりあえず、終値の偏差を算出してみました。右肩下がりのチャートで偏差を求める意味はないですが、excel操作を勉強するということで許して下さい。
次は分散等も算出してみたいと思います。