回答編集履歴
1
説明を追加
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
元のdataframeが `df` という変数に入っているとして、以下の処理で実現できるかと思いました。
|
2
2
|
|
3
|
-
下記の通り、カラム名について、エラーをERROR、日時をdatetimeという名前にしています。
|
3
|
+
下記の通り、カラム名について、エラーをERROR、日時をdate_timeという名前にしています。
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
| datetime | ID | VALUE | ERROR |
|
11
|
+
| date_time | ID | VALUE | ERROR |
|
12
12
|
|
13
13
|
| --- | --- | --- | --- |
|
14
14
|
|
@@ -44,6 +44,12 @@
|
|
44
44
|
|
45
45
|
```python
|
46
46
|
|
47
|
+
# date_timeを型変換
|
48
|
+
|
49
|
+
df['date_time'] = pd.to_datetime(df['date_time'])
|
50
|
+
|
51
|
+
|
52
|
+
|
47
53
|
# エラーが1のものだけ抽出
|
48
54
|
|
49
55
|
df = df.query("ERROR != 1")
|
@@ -58,12 +64,34 @@
|
|
58
64
|
|
59
65
|
# datetimeでgroup_by
|
60
66
|
|
61
|
-
df_group = df.groupby(by="datetime")
|
67
|
+
df_group = df.groupby(by="date_time")
|
62
68
|
|
63
69
|
|
64
70
|
|
65
|
-
# ID_numが最小の行のrowを取得する
|
71
|
+
# 各groupにおいて、ID_numが最小の行のrowを取得する
|
66
72
|
|
67
73
|
df = df.loc[df_group['ID_num'].idxmin(),:]
|
68
74
|
|
75
|
+
|
76
|
+
|
77
|
+
# 最後に、date_timeでソート
|
78
|
+
|
79
|
+
df = df.sort_values('date_time', ascending=True)
|
80
|
+
|
69
81
|
```
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
### 得られる結果
|
86
|
+
|
87
|
+
上記を実行することで下記のような結果を得ることができるはずです
|
88
|
+
|
89
|
+
![イメージ説明](30e3b68dc2d436cdadbaee2e810f7211.png)
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
### 参考になる記事
|
94
|
+
|
95
|
+
[アスキーコードについて](http://www12.plala.or.jp/mz80k2/electronics/ascii/ascii.html)
|
96
|
+
|
97
|
+
[idxminの使い方](https://qiita.com/ground0state/items/245c4f122f29c74c0e08)
|