質問編集履歴

1

加筆

2019/05/17 11:59

投稿

mmtt
mmtt

スコア23

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,11 @@
12
12
 
13
13
  ②必要な情報を取得する
14
14
 
15
+ ③②を用いてSeriesにまとめる
16
+
15
-
17
+ を空のフレームに追加
18
+
19
+ を行おうとしています。
16
20
 
17
21
 
18
22
 
@@ -22,6 +26,12 @@
22
26
 
23
27
  関数を定期的に実行し、DateFrameにデータを蓄積するコードの書き方。
24
28
 
29
+ 特に、1度目実行したのち一定時間後再度実行した際に、またデータフレームが空の状態になってしまっているため、データが蓄積できていません。
30
+
31
+
32
+
33
+ ※コードの書き方にエラーがでているわけではありません。
34
+
25
35
  ### 実際のコード
26
36
 
27
37
  ```python3.72
@@ -82,12 +92,180 @@
82
92
 
83
93
  data = [a,b,c,d,e]
84
94
 
85
-
86
-
87
- datalist.append(data)
95
+ datalist.append(data)
96
+
97
+ record = pd.Series(datalist) # ③の部分
98
+
99
+ df = df.append(record, ignore_index=True) # ④の部分
100
+
101
+
102
+
103
+
104
+
105
+ ```
106
+
107
+ ### コード全体
108
+
109
+ ```Python
110
+
111
+
112
+
113
+ import json
114
+
115
+ import requests
116
+
117
+ import pandas as pd
118
+
119
+ import numpy as np
120
+
121
+
122
+
123
+ access_key = ""
124
+
125
+
126
+
127
+ URL = 'https://api.clashroyale.com/v1'
128
+
129
+
130
+
131
+ #選手名とパスを結合する辞書を作成
132
+
133
+ dic={"みかん坊や":"%232VYJYJ09","天GOD":"%232G0QUGLU","kota":"%23889VQ8JP","RAD":"%238QRCJQ9Y","ライキジョーンズ":"%2398Q8LPQ9",
134
+
135
+ "Jack":"%23YRVL9U98","きたっしゃん":"%23P8RLYOV9","だに":"%238LJVVGJP","けんつめし":"%23PQRR0CG9",
136
+
137
+ "Rorapolon":"%239JPRJ9R","焼き鳥":"%232Y8GL0V2","ユイヒイロ":"%23R2GRQPCJ","Blossom":"%238Q20LRC8Y","kk19212":"%23RU2CC2LG",
138
+
139
+ "れいや":"%232LRVG0C8","HANE×HANE":"%238Y088VU8U","Lewis":"%238Q020U0U","ピラメキ":"%232YGQGY92V","天ぷら":"%238Q2V2CGR","Scott":"%232Q98GVP9V"}
140
+
141
+
142
+
143
+ # 選手名を含むリストを作成
144
+
145
+ list= ["みかん坊や","天GOD","kota","RAD","ライキジョーンズ",
146
+
147
+ "Jack","きたっしゃん","だに","けんつめし",
148
+
149
+ "Rorapolon","焼き鳥","ユイヒイロ","Blossom","kk19212",
150
+
151
+ "れいや","HANE×HANE","Lewis","ピラメキ","天ぷら","Scott"]
152
+
153
+
154
+
155
+
156
+
157
+ def battle_info(name):
158
+
159
+ target_api = URL + "/players/"
160
+
161
+ playerTag = dic[name]
162
+
163
+ url = target_api+playerTag+"/battlelog"
164
+
165
+ headers = {
166
+
167
+ "content-type": "application/json; charset=utf-8",
168
+
169
+ "cache-control": "max-age=60",
170
+
171
+ "authorization": "Bearer %s" % access_key}
172
+
173
+ r = requests.get(url,headers=headers)
174
+
175
+ data = r.json()
176
+
177
+ return data
178
+
179
+
180
+
181
+ __name__ == '__battle_info__'
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+ def selfdeck_list(name):
194
+
195
+
196
+
197
+ columns1=["type","my","opponent","result","time"]
198
+
199
+ df = pd.DataFrame(columns=columns1)
200
+
201
+
202
+
203
+ ba = battle_info(name)
204
+
205
+ datalist = []
206
+
207
+ for newnum in range(0,25):
208
+
209
+
210
+
211
+ mydecklist = [ ba[decknum]["team"][0]["cards"][numindeck]["name"] for decknum in range(0,25) for numindeck in range(0,8) ]
212
+
213
+ opodecklist= [ ba[decknum]["opponent"][0]["cards"][numindeck]["name"] for decknum in range(0,25) for numindeck in range(0,8) ]
214
+
215
+ decktype = [ ba[decknum]["type"] for decknum in range(0,25)]
216
+
217
+ mycrowns = [ ba[decknum]["team"][0]["crowns"] for decknum in range(0,25)]
218
+
219
+ opocrowns= [ ba[decknum]["opponent"][0]["crowns"] for decknum in range(0,25)]
220
+
221
+ time = [ ba[decknum]["battleTime"] for decknum in range(0,25)]
222
+
223
+
224
+
225
+ a = decktype[int(newnum)]
226
+
227
+ b = tuple(mydecklist[int(newnum*8):int(newnum*8+8)])
228
+
229
+ c = tuple(opodecklist[int(newnum*8):int(newnum*8+8)])
230
+
231
+ if mycrowns[int(newnum)] > opocrowns[int(newnum)]:
232
+
233
+ winorlose = "win"
234
+
235
+ elif mycrowns[int(newnum)] < opocrowns[int(newnum)]:
236
+
237
+ winorlose = "lose"
238
+
239
+ else:
240
+
241
+ winorlose = "draw"
242
+
243
+ d = winorlose
244
+
245
+ e = time[int(newnum)][:15]
246
+
247
+ data = [a,b,c,d,e]
248
+
249
+ datalist.append(data)
88
250
 
89
251
  record = pd.Series(datalist)
90
252
 
91
253
  df = df.append(record, ignore_index=True)
92
254
 
255
+
256
+
257
+ print(df)
258
+
259
+
260
+
261
+
262
+
263
+ __name__ == '__selfdeck_list__'
264
+
265
+
266
+
267
+ selfdeck_list("Scott")
268
+
269
+
270
+
93
271
  ```