
Python pandas dataframe で、実現できるのか教えてください。
下記のようなデータフレームで、列a だけがある状態から、列b の値を算出し追加したいです。
列b は、列aの値が、1行前からn行前のaよりも大きければnが入るとします。
(列aが前の行のaと同じまたは小さければ0が、
1行前だけのaよりも大きければ1が、
1行前・2行前のaよりも大きければ2が入ります。)
各行についてforループで、さらに何行前と比較するかをforループにというように
forループを2重にすれば書けることはわかるのですが、
そうではなく簡素に(各行についてループすることなく)書くことは可能でしょうか。
(whereなどをうまく使うのかなと思いましたがどうすれば良いのかわかりませんでした)
| a | b |
|---|---|
| 48 | 0 |
| 20 | 0 |
| 3 | 0 |
| 15 | 1 |
| 13 | 0 |
| 32 | 4 |
| 7 | 0 |
| 27 | 1 |
| 85 | 8 |
| 48 | 0 |
簡素になるならば、最大で5行前までを比較の対象とする、などとしてしまうことは可能です。
よろしくお願い致します。

0 コメント