以下のようなデータがあります。
施設と個人コードの2つで個人を特定できます。
年月Noは実際は年月なのですが、時系列の流れが分かるように数値にしています。(数字が大きいほど、あとの月)
ステージはその個人のある状況のステージです。(0から5まで6段階あります。)
(施設、個人コード、年月No、ステージの順番でソートを昇順にかけています。)
報酬というカラムを作成したいと思います。これは、ある個人がある年月でステージがアップした時、
そのアップした大きさに応じて、報酬を与えたいと考えています。
例えば、0→1なら後の数値1と差額の1をかけて1、1→2であれば、後の数値の2に差額の1をかけて2、
3→5であれば、後の数値の5と差額の2をかけて10のようにしたいと思っております。
数値に変化がなかったり、値が決まらなければ0にしたいと考えております。
下記のdataframeを作成した段階で、for文を使っても、後のインデックスを認識させることができず、
Python
1for i,n in enumerate(zip(df["施設"].values,df["個人コード"].values,df["年月No"].values,df["ステージ"].values)): 2 print(i,n) 3 4#とか 5for i,v in enumerate(df.values): 6 print(i,v[0],v[1],v[2],v[3])
などとやったのですが、インデックスが先の状態のことをどのように記憶させるのかわからず、手が止まってしまいました。
報酬のカラムを作成するのに、お知恵をいただけないでしょうか。
何卒よろしくお願い申し上げます。
施設 | 個人コード | 年月No | ステージ |
---|---|---|---|
10229652 | 267242 | 1 | 0 |
10229652 | 267242 | 2 | 1 |
10229652 | 267242 | 3 | 1 |
10229652 | 267242 | 4 | 1 |
10229652 | 267242 | 5 | 2 |
10229652 | 267242 | 6 | 2 |
10229652 | 267242 | 7 | 2 |
10229652 | 267242 | 8 | 2 |
10229652 | 267242 | 9 | 3 |
10229652 | 267242 | 10 | 3 |
10229652 | 267242 | 11 | 3 |
10229652 | 267242 | 12 | 3 |
10229800 | 198000 | 1 | 3 |
10229800 | 198000 | 2 | 3 |
10229800 | 198000 | 3 | 3 |
10229800 | 198000 | 4 | 3 |
10229800 | 198000 | 5 | 4 |
10229800 | 198000 | 6 | 4 |
10229800 | 198000 | 7 | 4 |
10229800 | 198000 | 8 | 4 |
10229800 | 198000 | 9 | 5 |
10229800 | 198000 | 10 | 5 |
回答2件
あなたの回答
tips
プレビュー