質問編集履歴
3
一つ前の修正を元に戻しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
以下のようなpandasのデータに対して、以下のような処理をしたいと考えています。
|
2
2
|
|
3
3
|
<書きたいコード>
|
4
|
-
signalが2のレコードの同一symbolのtimedelta(10)秒経過
|
4
|
+
signalが2のレコードの同一symbolのtimedelta(10)秒経過前の一番最後のレコードのsignalを1に置き換える。
|
5
5
|
|
6
6
|
|
7
7
|
```csv
|
@@ -22,9 +22,9 @@
|
|
22
22
|
2020-10-23 00:00:02.022399+00:00 3922 0
|
23
23
|
2020-10-23 00:00:02.032578+00:00 4436 0
|
24
24
|
2020-10-23 00:00:09.293038+00:00 4393 0
|
25
|
-
2020-10-23 00:00:09.299666+00:00 2160 0
|
25
|
+
2020-10-23 00:00:09.299666+00:00 2160 0←ここの0を1に置き換えたい
|
26
26
|
2020-10-23 00:00:09.299666+00:00 1431 0
|
27
|
-
2020-10-23 00:00:09.315364+00:00 7779 0
|
27
|
+
2020-10-23 00:00:09.315364+00:00 7779 0←ここの0を1に置き換えたい
|
28
28
|
2020-10-23 00:00:09.331052+00:00 9467 0
|
29
29
|
2020-10-23 00:00:09.331052+00:00 3663 0
|
30
30
|
2020-10-23 00:00:09.415579+00:00 2160 0
|
@@ -36,9 +36,9 @@
|
|
36
36
|
2020-10-23 00:00:15.580064+00:00 4436 0
|
37
37
|
2020-10-23 00:00:15.590341+00:00 3359 0
|
38
38
|
2020-10-23 00:00:15.673560+00:00 4393 0
|
39
|
-
2020-10-23 00:00:15.681706+00:00 2160 0
|
39
|
+
2020-10-23 00:00:15.681706+00:00 2160 0
|
40
40
|
2020-10-23 00:00:15.693816+00:00 7353 0
|
41
|
-
2020-10-23 00:00:15.704075+00:00 7779 0
|
41
|
+
2020-10-23 00:00:15.704075+00:00 7779 0
|
42
42
|
2020-10-23 00:00:15.714524+00:00 9467 0
|
43
43
|
2020-10-23 00:00:15.722784+00:00 4051 0
|
44
44
|
2020-10-23 00:00:15.735338+00:00 3922 0
|
2
条件を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
以下のようなpandasのデータに対して、以下のような処理をしたいと考えています。
|
2
2
|
|
3
3
|
<書きたいコード>
|
4
|
-
signalが2のレコードの同一symbolのtimedelta秒
|
4
|
+
signalが2のレコードの同一symbolのtimedelta(10)秒経過後一番早いレコードのsignalを1に置き換える。
|
5
5
|
|
6
6
|
|
7
7
|
```csv
|
@@ -24,10 +24,10 @@
|
|
24
24
|
2020-10-23 00:00:09.293038+00:00 4393 0
|
25
25
|
2020-10-23 00:00:09.299666+00:00 2160 0
|
26
26
|
2020-10-23 00:00:09.299666+00:00 1431 0
|
27
|
-
2020-10-23 00:00:09.315364+00:00 7779 0
|
27
|
+
2020-10-23 00:00:09.315364+00:00 7779 0
|
28
28
|
2020-10-23 00:00:09.331052+00:00 9467 0
|
29
29
|
2020-10-23 00:00:09.331052+00:00 3663 0
|
30
|
-
2020-10-23 00:00:09.415579+00:00 2160 0
|
30
|
+
2020-10-23 00:00:09.415579+00:00 2160 0
|
31
31
|
2020-10-23 00:00:09.415579+00:00 9467 0
|
32
32
|
2020-10-23 00:00:09.431199+00:00 4051 0
|
33
33
|
2020-10-23 00:00:09.493694+00:00 4393 0
|
@@ -36,9 +36,9 @@
|
|
36
36
|
2020-10-23 00:00:15.580064+00:00 4436 0
|
37
37
|
2020-10-23 00:00:15.590341+00:00 3359 0
|
38
38
|
2020-10-23 00:00:15.673560+00:00 4393 0
|
39
|
-
2020-10-23 00:00:15.681706+00:00 2160 0
|
39
|
+
2020-10-23 00:00:15.681706+00:00 2160 0←ここの0を1に置き換えたい
|
40
40
|
2020-10-23 00:00:15.693816+00:00 7353 0
|
41
|
-
2020-10-23 00:00:15.704075+00:00 7779 0
|
41
|
+
2020-10-23 00:00:15.704075+00:00 7779 0←ここの0を1に置き換えたい
|
42
42
|
2020-10-23 00:00:15.714524+00:00 9467 0
|
43
43
|
2020-10-23 00:00:15.722784+00:00 4051 0
|
44
44
|
2020-10-23 00:00:15.735338+00:00 3922 0
|
1
自分なりにコードを書き進めて、行き詰まった部分のみの質問に改めました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -49,14 +49,16 @@
|
|
49
49
|
```
|
50
50
|
|
51
51
|
<試したこと>
|
52
|
+
10/28修正
|
52
|
-
以下のコードを書いてみましたが、以
|
53
|
+
以下のコードを書いてみましたが、later_signalが2の時だけsignalを1に置き換える(それ以外の場合はsignalを書き換えない)applyの部分を書くことができませんでした。
|
54
|
+
ここの記載方法をご教示いただけないでしょうか?
|
53
|
-
そ
|
55
|
+
もし、そもそもの記載方法に誤りがあればご指摘もお願いします。
|
54
|
-
KeyError: 'currentpricetime'
|
55
56
|
|
56
57
|
```python
|
57
58
|
# 指定秒後のシグナルを置き換え
|
58
|
-
|
59
|
+
for symbol, df_s in df.groupby('symbol'):
|
59
|
-
|
60
|
+
df_s = df_s.sort_values(['currentpricetime'])
|
60
|
-
|
61
|
+
later_signal=df_s.set_index('currentpricetime')['signal'].asof(df_s['currentpricetime'] - pd.Timedelta(timedelta)).array
|
61
|
-
|
62
|
+
df.loc[df_s.index, 'later_signal'] = later_signal
|
63
|
+
df['signal'] = df['later_signal'].apply((lambda x: 1 if x == 2 else None))
|
62
64
|
```
|