我有一个数据框
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。
想法?
答案 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