質問編集履歴

4

ご回答くださったのは t_obara さんでした。失礼しました。

2020/06/04 05:23

投稿

Azzukky
Azzukky

スコア9

test CHANGED
File without changes
test CHANGED
@@ -106,7 +106,7 @@
106
106
 
107
107
  processed_horse_results = {} #加工したデータも辞書に格納するようにした
108
108
 
109
- for horse_id, df in horse_results.items(): #Lhankor_Mhyさんにご回答いただいたコード
109
+ for horse_id, df in horse_results.items(): # t_obaraさんにご回答いただいたコード
110
110
 
111
111
 
112
112
 
@@ -154,7 +154,7 @@
154
154
 
155
155
  関数2(関数1)を実行して、出走馬の戦績を辞書に格納することはできてます。
156
156
 
157
- 関数3はLhankor_Mhyさん教えていただいたコードに変更しました。
157
+ 関数3は t_obara さん教えていただいたコードに変更しました。
158
158
 
159
159
 
160
160
 

3

関数3はLhankor_Mhyさんい教えていただいたコードに変更しました。 processed_horse_results[horse_id] = {}を作って、辞書にデータを格納するようにしました

2020/06/04 05:23

投稿

Azzukky
Azzukky

スコア9

test CHANGED
File without changes
test CHANGED
@@ -16,37 +16,11 @@
16
16
 
17
17
  ```
18
18
 
19
- 関数2(関数1)機能ますが、関数3(関数2(関数1))を機能させるコドがわません。
19
+ 関数3動くようになりまが、1頭分のデタし返ってきません。
20
+
21
+ どこがおかしいのでしょうか?
20
22
 
21
23
 
22
-
23
-
24
-
25
- ---------------------------------------------------------------------------
26
-
27
- NameError Traceback (most recent call last)
28
-
29
- <ipython-input-4-d995be32147d> in <module>
30
-
31
- ----> 1 preprocessing(scrape_horse_results(syusso_list()))
32
-
33
-
34
-
35
- <ipython-input-3-8fdbb45edfa7> in preprocessing(horse_results)
36
-
37
- 3 def preprocessing(horse_results):
38
-
39
- 4
40
-
41
- ----> 5 df = horse_results[horse_id]
42
-
43
- 6
44
-
45
- 7 df['レース名2'] = df['レース名'].str.split('(', expand = True)[0]
46
-
47
-
48
-
49
- NameError: name 'horse_id' is not defined
50
24
 
51
25
  ```
52
26
 
@@ -130,35 +104,39 @@
130
104
 
131
105
  def preprocessing(horse_results):
132
106
 
133
-
107
+ processed_horse_results = {} #加工したデータも辞書に格納するようにした
134
108
 
135
- df = horse_results[horse_id]
109
+ for horse_id, df in horse_results.items(): #Lhankor_Mhyさんにご回答いただいたコード
136
110
 
137
111
 
138
112
 
139
- df['レース名2'] = df['レース名'].str.split('(', expand = True)[0]
113
+ df['レース名2'] = df['レース名'].str.split('(', expand = True)[0]
140
114
 
141
- df['レースクラス'] = df['レース名'].str.split('(', expand = True)[1].str[:-1]
115
+ df['レースクラス'] = df['レース名'].str.split('(', expand = True)[1].str[:-1]
142
116
 
143
117
 
144
118
 
145
- df['日付2'] = [dt.strptime(i, "%Y/%m/%d") for i in df['日付']]
119
+ df['日付2'] = [dt.strptime(i, "%Y/%m/%d") for i in df['日付']]
146
120
 
147
121
 
148
122
 
149
- df['コース'] = df['距離'].map(lambda x:str(x)[0])
123
+ df['コース'] = df['距離'].map(lambda x:str(x)[0])
150
124
 
151
- df['距離2'] = df['距離'].map(lambda x:str(x)[1:]).astype(int)
125
+ df['距離2'] = df['距離'].map(lambda x:str(x)[1:]).astype(int)
152
126
 
153
127
 
154
128
 
155
- df.drop(['天気', '映像', '頭数', '枠番', 'タイム指数', '通過', 'ペース', '上り','騎手', 'R', '馬場指数', '斤量', 'オッズ', '人気', '馬体重',\
129
+ df.drop(['天気', '映像', '頭数', '枠番', 'タイム指数', '通過', 'ペース', '上り','騎手', 'R', '馬場指数', '斤量', 'オッズ', '人気', '馬体重',\
156
130
 
157
131
  '厩舎コメント', '備考', '賞金', '勝ち馬(2着馬)', 'レース名', '日付', '距離', '馬番'], axis = 1, inplace = True)
158
132
 
133
+
134
+
135
+ processed_horse_results[horse_id] = df #horse_idをキーとして辞書に入れる
136
+
159
137
 
160
138
 
161
- return df
139
+ return processed_horse_results
162
140
 
163
141
 
164
142
 
@@ -176,9 +154,11 @@
176
154
 
177
155
  関数2(関数1)を実行して、出走馬の戦績を辞書に格納することはできてます。
178
156
 
179
- 関数3(関数2(関数1))を機能せるめのコードがわかりせん
157
+ 関数3はLhankor_Mhyんい教えていだいたコードに変更しした
180
158
 
181
159
 
160
+
161
+ processed_horse_results[horse_id] = {}を作って、辞書にデータを格納するようにしましたが、1頭分しか返ってきません
182
162
 
183
163
 
184
164
 

2

エラーメッセージを追記しました。

2020/06/04 05:22

投稿

Azzukky
Azzukky

スコア9

test CHANGED
File without changes
test CHANGED
@@ -17,6 +17,36 @@
17
17
  ```
18
18
 
19
19
  関数2(関数1)は機能しますが、関数3(関数2(関数1))を機能させるコードがわかりません。
20
+
21
+
22
+
23
+
24
+
25
+ ---------------------------------------------------------------------------
26
+
27
+ NameError Traceback (most recent call last)
28
+
29
+ <ipython-input-4-d995be32147d> in <module>
30
+
31
+ ----> 1 preprocessing(scrape_horse_results(syusso_list()))
32
+
33
+
34
+
35
+ <ipython-input-3-8fdbb45edfa7> in preprocessing(horse_results)
36
+
37
+ 3 def preprocessing(horse_results):
38
+
39
+ 4
40
+
41
+ ----> 5 df = horse_results[horse_id]
42
+
43
+ 6
44
+
45
+ 7 df['レース名2'] = df['レース名'].str.split('(', expand = True)[0]
46
+
47
+
48
+
49
+ NameError: name 'horse_id' is not defined
20
50
 
21
51
  ```
22
52
 

1

関数3に df = horse_results[horse_id] を加筆しました。

2020/06/03 08:30

投稿

Azzukky
Azzukky

スコア9

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- df = #ここのコードがわからない
105
+ df = horse_results[horse_id]
106
106
 
107
107
 
108
108