2016-12-08 1 views
1

これはこの質問のフォローアップhereです。私は便宜上の例のデータフレームをレポート:私がする必要がどのようなデータフレーム内の2つの連続する行の間の列の差の割合のパンダ平均

name date   quantity 
'A' 2016-12-02 20 
'A' 2016-12-03 5 
'A' 2016-11-30 10 
'B' 2016-11-30 10 
... 

は、(日数で)日付で量/差の違い

として定義さ比の平均を計算しています

各名前。差異は、時系列的に順序付けられた日付について計算されなければならず、データフレームはそれらを順序付けして提示するとは限らない。

これまでの質問では、分子の平均を計算することができますが、完全な比率の平均をどうやって計算すればよいでしょうか?

答えて

1

あなたはdivによってdaysと除算に変換Timedeltaためdt.daysでカスタム関数fを使用することができます。

def f(x): 
    d = x.date.diff().dt.days 
    q = x.quantity.diff() 
    return (q.div(d)).mean() 

df1 = df.sort_values('date').groupby('name').apply(f).reset_index(name='ratio') 
print (df1) 
    name ratio 
0 'A' -5.0 
1 'B' NaN 
+0

は確かに、それが行われています。 – jezrael

関連する問題