2016-08-10 21 views
5

Grupladığım bir DataFrame'im var. Veri çerçevesine grup başına başka bir sütun eklemek istiyorum. Her grup için sütun D differnece almak ve fark hesaplama ile yeni bir sütunu yer alır bir DF istiyorumPanda gruplarını değiştirin

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() 

: gibi bir şey. Eğer DataFrameGroupBy.diff kullanabilirsiniz

cevap

5

IIUC:

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

Bu benim yaptığım olacaktınız. – piRSquared

İlgili konular