質問概要
groupbyした各groupから特定条件を満たす要素を1行づつ取り出す処理を実装したいです。
python初学者で基本的な質問かもしれませんが、お知恵を拝借できますでしょうか。
実現したいこと
以下のようなdataframeに対し、日時でgroupbyを行った各groupの中から以下の条件を満たす行を1行づつ抽出したいです。
■group内の抽出条件
・エラーフラグが立っていない(エラー≠1)
・エラーフラグが立っていないデータが複数ある場合、IDが A>B>C の優先度で抽出する
・すべてエラーフラグが立っている場合、何も抽出しない
具体的には以下の例です。
■元のdataframe
日時 | ID | 計測値 | エラー |
---|---|---|---|
2020-02-01 9:00:00 | A | 0 | 1 |
2020-02-01 9:00:00 | B | 10 | 0 |
2020-02-01 9:00:00 | C | 13 | 0 |
2020-02-01 10:00:00 | A | 20 | 0 |
2020-02-01 10:00:00 | B | 22 | 0 |
2020-02-01 10:00:00 | C | 18 | 0 |
2020-02-01 11:00:00 | A | 0 | 1 |
2020-02-01 11:00:00 | B | 0 | 1 |
2020-02-01 11:00:00 | C | 0 | 1 |
2020-02-01 12:00:00 | A | 0 | 1 |
2020-02-01 12:00:00 | B | 0 | 1 |
2020-02-01 12:00:00 | C | 13 | 0 |
■欲しいdataframe
日時 | ID | 計測値 | エラー |
---|---|---|---|
2020-02-01 9:00:00 | B | 10 | 0 |
2020-02-01 10:00:00 | A | 20 | 0 |
2020-02-01 12:00:00 | C | 13 | 0 |
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/28 09:28