質問編集履歴
4
ご回答くださったのは t_obara さんでした。失礼しました。
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(): #
|
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は
|
157
|
+
関数3は t_obara さんに教えていただいたコードに変更しました。
|
158
158
|
|
159
159
|
|
160
160
|
|
3
関数3はLhankor_Mhyさんい教えていただいたコードに変更しました。 processed_horse_results[horse_id] = {}を作って、辞書にデータを格納するようにしました
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,37 +16,11 @@
|
|
16
16
|
|
17
17
|
```
|
18
18
|
|
19
|
-
関数
|
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
|
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 d
|
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
|
157
|
+
関数3はLhankor_Mhyさんい教えていただいたコードに変更しました。
|
180
158
|
|
181
159
|
|
160
|
+
|
161
|
+
processed_horse_results[horse_id] = {}を作って、辞書にデータを格納するようにしましたが、1頭分しか返ってきません
|
182
162
|
|
183
163
|
|
184
164
|
|
2
エラーメッセージを追記しました。
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] を加筆しました。
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
|
|