python
1ID ruiseki 2001 2 3001 3 4002 4 5002 5 6001 6 7001 7 8003 8
このようなデータテーブルがあったとして、idごとに、その1つ前のデータのruisekiを引いた値をカラムに追加したいと考えています。つまり下のようなデータテーブルに変形したいと考えています。
python
1ID ruiseki target 2001 2 0 3001 3 1 4002 4 0 5002 5 1 6001 6 3 7001 7 1 8003 8 0
現在、以下のように、IDごとにデータを抽出して、その中で現在の行の1つ前の行を参照し、そのruisekiの値との差をtargetに入れていくような方法を考えているのですが、うまくいきません。
どうしたらうまくいくでしょうか?
回答よろしくお願いします。
python
1for i in df["ID"].unique(): 2 for j in range(0,len(df[df["ID"]==i])): 3 if(j==0): 4 df[df["ID"]==i].iloc[0,2]=0 5 else: 6 df[df["ID"]==i].iloc[j,2]=df[df["ID"]==i].iloc[j,1]-df[df["ID"]==i].iloc[j-1,1]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/31 02:30