質問編集履歴

3

一つ前の修正を元に戻しました

2020/10/28 23:19

投稿

taro_yamada
taro_yamada

スコア55

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  <書きたいコード>
6
6
 
7
- signalが2のレコードの同一symbolのtimedelta(10)秒経過一番早いレコードのsignalを1に置き換える。
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←ここの0を1に置き換えたい
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←ここの0を1に置き換えたい
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

条件を修正しました。

2020/10/28 23:19

投稿

taro_yamada
taro_yamada

スコア55

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  <書きたいコード>
6
6
 
7
- signalが2のレコードの同一symbolのtimedelta秒以内のうち一番いレコードのsignalを1に置き換える。
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 ←ここの0を1に置き換えたい
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 ←ここの0を1に置き換えたい
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

自分なりにコードを書き進めて、行き詰まった部分のみの質問に改めました。

2020/10/28 23:02

投稿

taro_yamada
taro_yamada

スコア55

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
- KeyError: 'currentpricetime'
109
+ もし、そもそもの記載方法に誤りがあればご指摘もお願いします。
108
110
 
109
111
 
110
112
 
@@ -112,12 +114,14 @@
112
114
 
113
115
  # 指定秒後のシグナルを置き換え
114
116
 
115
- for symbol, df_s in df_result.groupby('symbol'):
117
+ for symbol, df_s in df.groupby('symbol'):
116
118
 
117
- df_s = df_s.sort_values(['currentpricetime'])
119
+ df_s = df_s.sort_values(['currentpricetime'])
118
120
 
119
- df_s.set_index('currentpricetime')['currentpricetime'].asof(df_s['currentpricetime'] + pd.Timedelta(timedelta))
121
+ later_signal=df_s.set_index('currentpricetime')['signal'].asof(df_s['currentpricetime'] - pd.Timedelta(timedelta)).array
120
122
 
121
- df_result.loc[df_s.later10s_time, 'signal'] = 1
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
  ```