質問編集履歴

2

コードを消しました。

2020/10/20 13:01

投稿

taro_yamada
taro_yamada

スコア55

test CHANGED
File without changes
test CHANGED
@@ -35,145 +35,3 @@
35
35
 
36
36
 
37
37
  お手数をおかけして本当に申し訳ありません。よろしくお願いします。
38
-
39
-
40
-
41
-
42
-
43
- ```python
44
-
45
- df = df.reset_index(drop=True)
46
-
47
-
48
-
49
- for i, row in df.iterrows():
50
-
51
- t = pushList.objects.get(pushList_id=df.loc[i, 'pushList_id'])
52
-
53
- time = df.loc[i, 'CurrentPriceTime'] + datetime.timedelta(hours=9)
54
-
55
- timecheck = time + datetime.timedelta(seconds=30)
56
-
57
- if time.time() > END_TIME: #15時を超えていたらelseにとんで0をいれる
58
-
59
- t.nextDirect = 0 # 0は時間外
60
-
61
- t.save()
62
-
63
- elif time.time() < START_TIME:
64
-
65
- t.nextDirect = 0 # 0は時間外
66
-
67
- t.save()
68
-
69
- elif RESTSTART_TIME < time.time() < RESTEND_TIME:
70
-
71
- t.nextDirect = 0 # 0は時間外
72
-
73
- t.save()
74
-
75
- else:
76
-
77
- df2 = df[(df.SymbolName == df.loc[i, 'SymbolName']) & (df.index > i)] # 同じ銘柄かつiよりあとのレコードでDF2を作成
78
-
79
- df2 = df2.reset_index(drop=True)
80
-
81
- for i2, row2 in df2.iterrows():
82
-
83
- time2 = df2.loc[i2, 'CurrentPriceTime'] + datetime.timedelta(hours=9) # 比較対象のレコードの時間を格納
84
-
85
- if time2.time() > timecheck.time():
86
-
87
- t.nextDirect = 3 #3は30秒間変化なし
88
-
89
- t.save()
90
-
91
- break
92
-
93
- elif time2.time() > END_TIME:
94
-
95
- t.nextDirect = 0 # 0は時間外
96
-
97
- t.save()
98
-
99
- break
100
-
101
- elif RESTSTART_TIME < time2.time() < RESTEND_TIME:
102
-
103
- t.nextDirect = 0 # 0は時間外
104
-
105
- t.save()
106
-
107
- break
108
-
109
- else:
110
-
111
- if df.loc[i, 'CalcPrice'] > df2.loc[i2, 'CalcPrice']: #CurrentQtyがiレコードのものより小さければ
112
-
113
- t.nextDirect = 1 # 1が下がった
114
-
115
- t.save()
116
-
117
- break
118
-
119
- elif df.loc[i, 'CalcPrice'] < df2.loc[i2, 'CalcPrice']:
120
-
121
- t.nextDirect = 2 # 2は上がった
122
-
123
- t.save()
124
-
125
- break
126
-
127
-
128
-
129
- if i % 100 == 0:
130
-
131
- print(str(i) + "レコードまで処理")
132
-
133
- print(datetime.datetime.now())
134
-
135
- ```
136
-
137
-
138
-
139
- ```python
140
-
141
- 目指す姿(ちなみに、CurrentPriceはUTCの関係で9時間ずれています)
142
-
143
- Symbol Exchange CurrentPrice CurrentPriceTime nextDirect
144
-
145
- 3276 1 1402 00:00.6 2←00:01:4の時点でcurrentPriceが1403に上がるため、2を返す
146
-
147
- 3276 1 1402 00:00.7 2
148
-
149
- 3276 1 1402 00:00.9 2
150
-
151
- 3276 1 1402 00:01.1 2
152
-
153
- 3276 1 1403 00:01.4 2
154
-
155
- 3276 1 1403 00:01.8 2
156
-
157
- 3276 1 1403 00:01.9 2
158
-
159
- 3276 1 1406 00:02.1 1←00:02.5の時点でCurrentPriceが1401に下がるため、1を返す
160
-
161
- 3276 1 1401 00:02.5 2
162
-
163
- 3276 1 1401 00:02.8 2
164
-
165
- 3276 1 1417 00:03.0
166
-
167
- 3276 1 1417 00:03.2
168
-
169
- 3276 1 1417 00:03.8
170
-
171
- 3276 1 1417 00:04.4
172
-
173
- 3276 1 1417 00:05.2
174
-
175
- 3276 1 1417 00:05.6
176
-
177
- 3276 1 1417 00:06.3
178
-
179
- ```

1

試したことなどを追記しました。

2020/10/20 13:01

投稿

taro_yamada
taro_yamada

スコア55

test CHANGED
File without changes
test CHANGED
@@ -21,6 +21,16 @@
21
21
 
22
22
 
23
23
  目的は、教師あり学習の教師信号をレコードに追加することです。
24
+
25
+
26
+
27
+ 自分なりに、ソースコードを書いてみたのですが、ループ処理に時間がかかってしまい、もっと別の方法があるのではないかと思っていますが、いい方法が思いつきません。
28
+
29
+
30
+
31
+  ふさわしい方法がなければ、今自分が書いたソースコードで毎日時間をかけて編集する方法でいきたいと思っています。
32
+
33
+
24
34
 
25
35
 
26
36