2016-12-09 8 views
1

私はこのコードに苦労しています。Python:同じ日付の値を見つけて差を計算する

私は日付と値を持つデータフレームを持っています。基本的に、私は同じ日付の値の違いを見たいと思います。私はそれらを合計する方法を知っていますが、どうすればそれらの間のデルタを見ることができますか?だから、どのように私は "違い"の列を作成できますか?このように:

DateTime   Values   Difference 
06/12/2016 00:00 58    25 
06/12/2016 00:15 75    63 
06/12/2016 00:30 66    -79 
06/12/2016 00:45 23    11 
06/12/2016 01:00 17    -537 
06/12/2016 00:00 33 
06/12/2016 00:15 12 
06/12/2016 00:30 145 
06/12/2016 00:45 12 
06/12/2016 01:00 55 


filename = path + "Forecast.csv" 
test = pd.read_csv(filename) 
df2 = test.groupby('DateTime')['Values'].sum() 

合計ではなく、その差を計算する方法はありますか?

ご協力いただきありがとうございます。

よろしく、

O Vizzle

私が最初にソートしなければならなかった
+0

'test.groupby( '日時') '値']の差分() ' – EdChum

+0

は、それを試して動作しません動作するはずです。ちょうど空のセル... –

+0

実際に私はあなたが 'test ['Difference'] = test.groupby(test ['DateTime']。dt.date)['Values']を望んだと思う。transform( 'diff')' – EdChum

答えて

2

df.set_index('DateTime').sort_index().groupby(level=0).diff(-1).dropna() 

enter image description here


あなたが持っていた正確に何を一致させるには

df.join(
    df.sort_values('DateTime').groupby('DateTime') \ 
     .diff(-1).dropna().rename(columns={'Values': 'Difference'}) 
).fillna('') 

enter image description here

+0

これはまさに私が探していたものです!ありがとうございました。 唯一のことは、元のテーブルに2より多くの列があることです。それではうまくいきません。最後に塗りつぶされた列の最後に差分列を追加するにはどうすればよいですか? –

+0

あなたが話していることを私に見せなければなりません。 – piRSquared

+0

以下を参照してください。 ありがとう –

関連する問題