2017年3月8日水曜日

Python競馬予想プログラミング【4】~Excelシートをすべてリスト化~

使用するExcelデータは【Python競馬予想プログラミング【2】~Excelファイルを読み込む~】を参照してください


基本的に一連の値を取得するコードを作ってしまえば、あとは膨大なデータもすぐに処理できるようになります。


たとえば最初に
a=25
print (a)

みたいな形を作っておいてから

for i in range(25):
  print(a)

とか

if a ==25:
  print(a)

みたいに書き換えていけば良いのです。

今回はこの書き換えの作業です。長くなってきたので全レースの着順だけを表示するコードを示します

import xlrd
import os.path
import numpy as np
xlsfile ="2016010506.xls"
if os.path.exists(xlsfile):
xls = xlrd.open_workbook(xlsfile)
sheet1 = xls.sheet_by_index(0)
"""
レース情報
"""
basho = sheet1.cell(0,0).value.split(" ")[3]
race = sheet1.cell(1,0).value.split(" ")[3]
baba = race[:1]
kyori = race[1:5]
print (basho)
print (baba)
print (kyori)
"""
着順
"""
allchaku=[]
for m in range(3):
for n in range(4):
chakujun =[]
for i in range (4,22):
chaku = sheet1.cell(i+m*25,0+n*12).value.split(" ")
if "" in chaku:
chaku.remove("")
chakujun += chaku
allchaku.append(chakujun)
allchaku.append(chakujun)
print (allchaku)
view raw 03081 hosted with ❤ by GitHub



それぞれのfor文で作成したリストを.appendで追加していきます。
+=の場合、1次元のリスト内に要素が追加されるだけなので、後で整理ができなくなってしまいます。
そこで.appendを使うことでレースごとの要素に分割することができます

以下は出力結果
=>[['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'], ['1', '2', '3', '4', '5', '6', '7', '7', '9', '10', '11', '12', '13'], ['1', '2', '3', '4', '5', '6', '7', '7', '9', '10', '11', '12', '13'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16'], ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16']]


とそれぞれレースごとのリストになっているのがわかります

<<<Python競馬予想プログラミング【3】~最初は力業で試してみる~


0 件のコメント:

コメントを投稿