回答編集履歴

1

説明を追加

2020/02/27 20:24

投稿

ash_fk
ash_fk

スコア45

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)