Pandas是数据帧中任意两个连续行之间差异的平均值

时间:2016-12-08 11:29:15

标签: python pandas dataframe

我有一个数据框

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

我想要做的是计算任何一对连续日期(按时间顺序连续)对于名称,数量的差异以及名称的平均值。

日期确实不一定按时间顺序排列。

具体来说,对于名称A,我想计算+10(差异12月2日 - 11月30日)和-15(差异4月12日 - 11月11日),然后平均这些,以获得最终结果这个名字是-2.5。

想法?

1 个答案:

答案 0 :(得分:2)

您可以groupby使用diff<style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="android:colorPrimaryDark">#ffffff</item> <item name="colorAccent">#ffffff</item> <item name="colorPrimary">@android:color/transparent</item> <item name="windowActionBarOverlay">true</item> <item name="android:windowTranslucentStatus">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:windowTranslucentNavigation">true</item> </style> mean

apply

编辑:您可以按列print (df.groupby('name')['quantity'].apply(lambda x: x.diff().mean()).reset_index()) name quantity 0 'A' -2.5 1 'B' NaN

添加sort_values
date