我有可能由以下代码生成的数据:
import pandas as pd
import numpy as np
end = '20201010'
df = pd.DataFrame()
for i in range(10):
start = np.random.choice(['20000101', '20100101', '20160101', '20121010'])
df_tempo = pd.DataFrame({'produit' : 'p'+str(i),
'cat' : 'cat'+str(np.random.choice(4))
},
index=pd.bdate_range(start=pd.to_datetime(start),
end=end,
freq=np.random.choice(['D', 'W'])))
df_tempo['valeur'] = np.random.randint(50,100, df_tempo.shape[0])
df = pd.concat([df,df_tempo])
df = df.reset_index().rename(columns={'index':'date'})
df
由此,我想计算每种产品1年(2年,…)的英勇增长率,以及历年的增长率
我想可能是这样的:
df.groupby(['cat','produit']).apply(lambda x: x.iloc[-1]/???)
但我不知道如何获得某个特定日期的x值(向后一年,一年的开始/结束…)
有什么想法吗
目前没有回答
相关问题 更多 >
编程相关推荐