groupby pandas数据框,取最新和最早日期之间的差值

时间:2018-07-13 22:29:38

标签: pandas pandas-groupby difference

我有一个“累积”列,我想groupby进行索引,并获取与最新日期相对应的值减去与最早日期相对应的值。

非常类似于:group by pandas dataframe and select latest in each group

但是,请以每组中最新的和最早的区别。

1 个答案:

答案 0 :(得分:0)

我是python新秀,这是我的解决方案:

import pandas as pd
from io import StringIO

csv = StringIO("""index    id     product   date
0   220    6647     2014-09-01 
1   220    6647     2014-09-03 
2   220    6647     2014-10-16
3   826    3380     2014-11-11
4   826    3380     2014-12-09
5   826    3380     2015-05-19
6   901    4555     2014-09-01
7   901    4555     2014-10-05
8   901    4555     2014-11-01""")

df = pd.read_table(csv, sep='\s+',index_col='index')
df['date']=pd.to_datetime(df['date'],errors='coerce')

df_sort=df.sort_values('date')
df_sort.drop(['product'], axis=1,inplace=True)

df_sort.groupby('id').tail(1).set_index('id')-df_sort.groupby('id').head(1).set_index('id')