前提・実現したいこと
https://alphaimpact.jp/2017/02/02/horse-table/
のサイトを見て,簡易な馬柱を作成する際にエラーが発生しました.
発生している問題・エラーメッセージ
for i, horse in enumerate(self.horse):
TypeError: 'Horse' object is not iterable
該当のソースコード
python3
1class HorseTable(object): 2 """ 3 馬柱クラス 4 """ 5 6 def __init__(self, race, horses): 7 """ 8 :param race: Raceクラス 9 :type race: Race 10 :param horses: Horseクラスのリスト. 馬番順に格納 11 :type horses: list of Horse 12 """ 13 self.race = race 14 self.horses = horses 15 16 def print_table(self): 17 """ 18 簡易馬柱を表示する 19 """ 20 # レース名の表示 21 print(self.race.get_race_title()) 22 23 # 馬番+馬名の表示 24 for i, horse in enumerate(self.horses): 25 horse_no = i + 1 26 print("{}. {}".format(horse_no, horse.get_name())) 27 28class Race(object): 29 """ 30 レースクラス 31 """ 32 33 def __init__(self, race_key, program, holding, payback=None): 34 """ 35 :param race_key: レースキー 36 :param program: レース情報 37 :param holding: 開催情報 38 :param payback: 払戻情報 39 """ 40 self.race_key = race_key 41 self.program = program 42 self.holding = holding 43 self.payback = payback 44 45 def get_race_title(self): 46 """ 47 レース名を取得する 48 """ 49 return self.program["レース名"] 50 51 52class Horse(object): 53 """ 54 馬クラス 55 """ 56 57 def __init__(self, horse_id, horse_profile, horse_race, race_results): 58 """ 59 :param horse_id: 血統登録番号 60 :param horse_profile: 馬属性情報 61 :param horse_race: 馬毎レース情報 62 :param race_results: 過去戦績のリスト 63 """ 64 self.horse_id = horse_id 65 self.horse_profile = horse_profile 66 self.horse_race = horse_race 67 self.race_results = race_results 68 69 def get_name(self): 70 """ 71 馬名を取得する 72 """ 73 return self.horse_profile["馬名"] 74#馬 75horse_id = DataFrame(keiba_data_set[['血統登録番号']]) 76horse_profile = DataFrame(keiba_data_set[['馬名','性別','年齢','所属','脚質']]) 77horse_profile = pd.get_dummies(horse_profile,columns=['性別','所属']) 78horse_profile['脚質'] = horse_profile['脚質'].map({'逃げ':1, '先行':2, '中団':3,'後方':4,'差し':5,'追込':6,'マクリ':7}) 79horse_race = DataFrame(keiba_data_set[['馬番','騎手名','騎手コード','馬体重','負担荷重','人気','賞金','単勝オッズ']]) 80race_results = DataFrame(keiba_data_set[['着差タイム','走破タイム(秒)','通過順1角','通過順2角','通過順3角','通過順4角','あがり3Fタイム','確定着順']]) 81 82#レース 83race_key = DataFrame(keiba_data_set[['レース名']]) 84program = DataFrame(keiba_data_set[['レース名','距離','頭数','トラックコード','クラスコード','1着本賞金']]) 85holding = DataFrame(keiba_data_set[['年','月','日','場所','天候','馬場状態']]) 86 87#出力 88instance_race = Race(race_key,program,holding) 89instance_horse = Horse(horse_id,horse_profile,horse_race,race_results) 90instance_HorseTable = HorseTable(instance_race,instance_horse) 91instance_HorseTable.print_table()
試したこと
出力でのエラーなのか
classに何を渡せば解決するのかがわかりません
補足情報
年 月 日 場所 距離 天候 レース名 馬場状態 トラックコード 頭数 クラスコード 1着本賞金 馬番 馬名 性別 年齢 騎手名 騎手コード 馬体重 負担荷重 人気 賞金 所属 血統登録番号 単勝オッズ 脚質 着差タイム 走破タイム(秒) 通過順1角 通過順2角 通過順3角 通過順4角 あがり3Fタイム 確定着順
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 1 デルマヨタロウ 牡 2 津村明秀 1092 458 54 14 0 美 2012101850 166.4 先行 0.8 90.7 0 4 4 2 36.5 7
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 2 ネコレーヌ 牝 2 井上敏樹 1151 414 51 13 0 美 2012101899 124.2 後方 1 90.9 0 13 14 13 35.6 8
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 3 ピックアンドポップ 牡 2 吉田隼人 1095 470 54 5 0 美 2012102545 12.4 後方 0.8 90.7 0 13 13 13 35.9 6
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 4 サトノアッシュ 牡 2 秋山真一 1019 454 54 1 75 栗 2012101359 3 追込 0.4 90.3 0 10 11 11 35.6 4
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 5 マコトグナイゼナウ 牡 2 藤岡康太 1116 430 54 2 500 栗 2012104840 3.3 逃げ 0 89.9 0 1 1 1 35.9 1
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 6 ブラックバード 牡 2 長岡禎仁 1142 454 51 8 50 栗 2012101504 30.2 中団 0.4 90.3 0 12 8 8 35.9 5
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 7 マイネルシアトル 牡 2 松岡正海 1085 436 54 6 0 栗 2012105276 17.1 後方 1.3 91.2 0 10 11 11 36.5 11
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 8 ムーンビューティ 牝 2 丹内祐次 1091 432 54 10 0 美 2012102528 34.1 先行 1.1 91 0 2 2 2 36.9 9
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 9 ウインアキレア 牝 2 三浦皇成 1122 444 54 4 130 栗 2012100229 7.5 先行 0.2 90.1 0 8 8 4 35.7 3
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 10 ミトノゴールド 牡 2 古川吉洋 1015 470 54 9 0 栗 2012103207 31.6 中団 2.2 92.1 0 4 6 9 37.8 14
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 11 ダンヴィル 牡 2 丸田恭介 1117 450 54 12 0 栗 2012101582 112.2 先行 1.3 91.2 0 4 6 4 36.9 10
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 12 ジョウショーチカラ 牡 2 藤田伸二 705 504 54 11 0 栗 2012100260 109.7 先行 1.5 91.4 0 4 4 4 37.2 12
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 13 ゴールドエッグ 牡 2 丸山元気 1127 452 54 7 0 美 2012103557 27.4 先行 2.1 92 0 2 2 4 37.9 13
14 7 26 札幌 1500 曇 未勝利* 良 0 14 7 500 14 ディープフォルツァ 牡 2 岩田康誠 5203 422 54 3 200 栗 2012104292 5.3 差し 0 89.9 0 9 8 9 35.4 2
回答1件
あなたの回答
tips
プレビュー