2016-08-10 10 views
5

私はグループ化したDataFrameを持っています。 データフレームに、グループごとに関数diffの結果である別の列を追加したいとします。私は、各グループごとに列Dのdifferneceを取得し、差分計算を使用して新しい列を含めるDFを持っていると思いパンダグループを変更する

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar', 
         'foo', 'bar', 'foo', 'foo'], 
        'B' : ['one', 'one', 'two', 'three', 
          'two', 'two', 'one', 'three'], 
        'C' : np.random.randn(8), 
        'D' : np.random.randn(8)}) 
df_grouped = df.groupby('B') 
for name, group in df_grouped: 
    new_df["D_diff"] = group["D"].diff() 

:のようなもの。

答えて

5

IIUCあなたはDataFrameGroupBy.diffを使用することができます。

df['D_diff'] = df.groupby('B')['D'].diff() 
print (df) 
    A  B   C   D D_diff 
0 foo one 1.996084 0.580177  NaN 
1 bar one 1.782665 0.042979 -0.537198 
2 foo two -0.359840 1.952692  NaN 
3 bar three -0.909853 0.119353  NaN 
4 foo two -0.478386 -0.970906 -2.923598 
5 bar two -1.289331 -1.245804 -0.274898 
6 foo one -1.391884 -0.555056 -0.598035 
7 foo three -1.270533 0.183360 0.064007 
+0

これは私がやったであろうものです。 – piRSquared

関連する問題