回答編集履歴
4
欠損処理忘れていたので追加
answer
CHANGED
@@ -47,7 +47,8 @@
|
|
47
47
|
|
48
48
|
df_diff = df1.groupby("SymbolName").diff()
|
49
49
|
|
50
|
+
# 上昇2、下降1、変動なし3、欠損None
|
50
|
-
df_diff["Sign"] = df_diff["CalcPrice"].apply(lambda x: 1 if x < 0 else 2 if x > 0 else 3)
|
51
|
+
df_diff["Sign"] = df_diff["CalcPrice"].apply((lambda x: 1 if x < 0 else 2 if x > 0 else 3 if x == 0 else None))
|
51
52
|
|
52
53
|
# 30秒以内変動がないものを欠損
|
53
54
|
df_diff["Sign"] = df_diff["Sign"].mask((df_diff["CurrentPriceTime"] < pd.Timedelta(seconds=30)) & (df_diff["Sign"] == 3))
|
3
30秒の条件訂正
answer
CHANGED
@@ -50,7 +50,7 @@
|
|
50
50
|
df_diff["Sign"] = df_diff["CalcPrice"].apply(lambda x: 1 if x < 0 else 2 if x > 0 else 3)
|
51
51
|
|
52
52
|
# 30秒以内変動がないものを欠損
|
53
|
-
df_diff["Sign"] = df_diff["Sign"].mask((df_diff["CurrentPriceTime"]
|
53
|
+
df_diff["Sign"] = df_diff["Sign"].mask((df_diff["CurrentPriceTime"] < pd.Timedelta(seconds=30)) & (df_diff["Sign"] == 3))
|
54
54
|
|
55
55
|
# 時間外を0
|
56
56
|
df_diff.loc[~InTime, "Sign"] = 0
|
2
勘違いしていたので修正
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
9:00から15:00の内11:30から12:30は
|
1
|
+
9:00から15:00の内11:30から12:30は0
|
2
|
-
同一銘柄の
|
2
|
+
同一銘柄のを上がったら2、下がったら1、変動なしのうち30秒以上は3、30秒以内は欠損にしています
|
3
3
|
|
4
4
|
```python
|
5
5
|
import datetime
|
@@ -36,23 +36,26 @@
|
|
36
36
|
|
37
37
|
df["CurrentPriceTime"] = pd.to_datetime(df["CurrentPriceTime"]).dt.tz_localize(None)
|
38
38
|
|
39
|
-
|
39
|
+
InTime= df["CurrentPriceTime"].dt.time.apply(
|
40
40
|
lambda d: (datetime.time(8) < d < datetime.time(11, 30))
|
41
41
|
| (datetime.time(12, 30) < d < datetime.time(15))
|
42
42
|
)
|
43
43
|
|
44
|
-
df1 = df.loc[
|
44
|
+
df1 = df.loc[:, ["SymbolName", "CurrentPriceTime", "CalcPrice"]]
|
45
45
|
|
46
46
|
df1
|
47
47
|
|
48
48
|
df_diff = df1.groupby("SymbolName").diff()
|
49
49
|
|
50
|
-
# 30秒以上は欠損
|
51
|
-
df_diff["
|
50
|
+
df_diff["Sign"] = df_diff["CalcPrice"].apply(lambda x: 1 if x < 0 else 2 if x > 0 else 3)
|
52
|
-
df_diff["CurrentPriceTime"] < pd.Timedelta(seconds=30)
|
53
|
-
)
|
54
51
|
|
52
|
+
# 30秒以内変動がないものを欠損
|
55
|
-
|
53
|
+
df_diff["Sign"] = df_diff["Sign"].mask((df_diff["CurrentPriceTime"] > pd.Timedelta(seconds=30)) & (df_diff["Sign"] == 3))
|
56
54
|
|
55
|
+
# 時間外を0
|
56
|
+
df_diff.loc[~InTime, "Sign"] = 0
|
57
|
+
|
58
|
+
df["Sign"] = df_diff["Sign"]
|
59
|
+
|
57
60
|
df
|
58
61
|
```
|
1
抽出の書き方変更
answer
CHANGED
@@ -41,7 +41,7 @@
|
|
41
41
|
| (datetime.time(12, 30) < d < datetime.time(15))
|
42
42
|
)
|
43
43
|
|
44
|
-
df1 = df[df["InTime"]
|
44
|
+
df1 = df.loc[df["InTime"], ["SymbolName", "CurrentPriceTime", "CalcPrice"]]
|
45
45
|
|
46
46
|
df1
|
47
47
|
|