judgeの列がFalseのときはそのままで、Trueのときは上の行を見て一番近いFalseのときの値を入れるというデータ処理をしたいのですが、うまくいきません。
具体的には、
t | judge | target |
---|---|---|
2019-12-18 01:30:00 | False | 0 |
2019-12-18 01:45:00 | True | 1 |
2019-12-18 02:00:00 | True | 2 |
2019-12-18 02:15:00 | False | 2 |
2019-12-18 02:30:00 | True | 1 |
というPandasを(tがindexでDatetime、judgeはbool、targetはintです)
t | judge | target |
---|---|---|
2019-12-18 01:30:00 | False | 0 |
2019-12-18 01:45:00 | True | 0 |
2019-12-18 02:00:00 | True | 0 |
2019-12-18 02:15:00 | False | 2 |
2019-12-18 02:30:00 | True | 2 |
のようにしたいです。
試したこと
python
1df.loc[df['target']==True, 'target'] = df['target'].shift(1)
としてみたのですが、
locはpandasの上から順に実行しているのではなく、すべての行を同時に実行したような結果になりうまくいきませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/18 07:06