質問編集履歴
3
一つ前の修正を元に戻しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
<書きたいコード>
|
6
6
|
|
7
|
-
signalが2のレコードの同一symbolのtimedelta(10)秒経過
|
7
|
+
signalが2のレコードの同一symbolのtimedelta(10)秒経過前の一番最後のレコードのsignalを1に置き換える。
|
8
8
|
|
9
9
|
|
10
10
|
|
@@ -46,11 +46,11 @@
|
|
46
46
|
|
47
47
|
2020-10-23 00:00:09.293038+00:00 4393 0
|
48
48
|
|
49
|
-
2020-10-23 00:00:09.299666+00:00 2160 0
|
49
|
+
2020-10-23 00:00:09.299666+00:00 2160 0←ここの0を1に置き換えたい
|
50
50
|
|
51
51
|
2020-10-23 00:00:09.299666+00:00 1431 0
|
52
52
|
|
53
|
-
2020-10-23 00:00:09.315364+00:00 7779 0
|
53
|
+
2020-10-23 00:00:09.315364+00:00 7779 0←ここの0を1に置き換えたい
|
54
54
|
|
55
55
|
2020-10-23 00:00:09.331052+00:00 9467 0
|
56
56
|
|
@@ -74,11 +74,11 @@
|
|
74
74
|
|
75
75
|
2020-10-23 00:00:15.673560+00:00 4393 0
|
76
76
|
|
77
|
-
2020-10-23 00:00:15.681706+00:00 2160 0
|
77
|
+
2020-10-23 00:00:15.681706+00:00 2160 0
|
78
78
|
|
79
79
|
2020-10-23 00:00:15.693816+00:00 7353 0
|
80
80
|
|
81
|
-
2020-10-23 00:00:15.704075+00:00 7779 0
|
81
|
+
2020-10-23 00:00:15.704075+00:00 7779 0
|
82
82
|
|
83
83
|
2020-10-23 00:00:15.714524+00:00 9467 0
|
84
84
|
|
2
条件を修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
<書きたいコード>
|
6
6
|
|
7
|
-
signalが2のレコードの同一symbolのtimedelta秒
|
7
|
+
signalが2のレコードの同一symbolのtimedelta(10)秒経過後一番早いレコードのsignalを1に置き換える。
|
8
8
|
|
9
9
|
|
10
10
|
|
@@ -50,13 +50,13 @@
|
|
50
50
|
|
51
51
|
2020-10-23 00:00:09.299666+00:00 1431 0
|
52
52
|
|
53
|
-
2020-10-23 00:00:09.315364+00:00 7779 0
|
53
|
+
2020-10-23 00:00:09.315364+00:00 7779 0
|
54
54
|
|
55
55
|
2020-10-23 00:00:09.331052+00:00 9467 0
|
56
56
|
|
57
57
|
2020-10-23 00:00:09.331052+00:00 3663 0
|
58
58
|
|
59
|
-
2020-10-23 00:00:09.415579+00:00 2160 0
|
59
|
+
2020-10-23 00:00:09.415579+00:00 2160 0
|
60
60
|
|
61
61
|
2020-10-23 00:00:09.415579+00:00 9467 0
|
62
62
|
|
@@ -74,11 +74,11 @@
|
|
74
74
|
|
75
75
|
2020-10-23 00:00:15.673560+00:00 4393 0
|
76
76
|
|
77
|
-
2020-10-23 00:00:15.681706+00:00 2160 0
|
77
|
+
2020-10-23 00:00:15.681706+00:00 2160 0←ここの0を1に置き換えたい
|
78
78
|
|
79
79
|
2020-10-23 00:00:15.693816+00:00 7353 0
|
80
80
|
|
81
|
-
2020-10-23 00:00:15.704075+00:00 7779 0
|
81
|
+
2020-10-23 00:00:15.704075+00:00 7779 0←ここの0を1に置き換えたい
|
82
82
|
|
83
83
|
2020-10-23 00:00:15.714524+00:00 9467 0
|
84
84
|
|
1
自分なりにコードを書き進めて、行き詰まった部分のみの質問に改めました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -100,11 +100,13 @@
|
|
100
100
|
|
101
101
|
<試したこと>
|
102
102
|
|
103
|
-
|
103
|
+
10/28修正
|
104
104
|
|
105
|
-
|
105
|
+
以下のコードを書いてみましたが、later_signalが2の時だけsignalを1に置き換える(それ以外の場合はsignalを書き換えない)applyの部分を書くことができませんでした。
|
106
106
|
|
107
|
+
ここの記載方法をご教示いただけないでしょうか?
|
108
|
+
|
107
|
-
|
109
|
+
もし、そもそもの記載方法に誤りがあればご指摘もお願いします。
|
108
110
|
|
109
111
|
|
110
112
|
|
@@ -112,12 +114,14 @@
|
|
112
114
|
|
113
115
|
# 指定秒後のシグナルを置き換え
|
114
116
|
|
115
|
-
|
117
|
+
for symbol, df_s in df.groupby('symbol'):
|
116
118
|
|
117
|
-
|
119
|
+
df_s = df_s.sort_values(['currentpricetime'])
|
118
120
|
|
119
|
-
|
121
|
+
later_signal=df_s.set_index('currentpricetime')['signal'].asof(df_s['currentpricetime'] - pd.Timedelta(timedelta)).array
|
120
122
|
|
121
|
-
|
123
|
+
df.loc[df_s.index, 'later_signal'] = later_signal
|
124
|
+
|
125
|
+
df['signal'] = df['later_signal'].apply((lambda x: 1 if x == 2 else None))
|
122
126
|
|
123
127
|
```
|