Python 计算经过的天数和百分比变化
我有一个带有层次索引ID的df&日期和度量值M。 我想在我的df中增加两项新措施;第一个是测量值M相对于先前观测值的百分比变化,第二个是经过的天数。Python 计算经过的天数和百分比变化,python,pandas,Python,Pandas,我有一个带有层次索引ID的df&日期和度量值M。 我想在我的df中增加两项新措施;第一个是测量值M相对于先前观测值的百分比变化,第二个是经过的天数。 ID窗口内的所有内容,即每个ID内的第一个观察值对于两个新度量值都为零一种方法是按ID分组,获得所需的差异并缝合一个新的数据帧。欢迎就如何做得更好和/或到位提出建议 new_df = pd.DataFrame() grouped = your_df.groupby('ID') for grp_id in grouped.groups: gr
ID窗口内的所有内容,即每个ID内的第一个观察值对于两个新度量值都为零一种方法是按ID分组,获得所需的差异并缝合一个新的数据帧。欢迎就如何做得更好和/或到位提出建议
new_df = pd.DataFrame()
grouped = your_df.groupby('ID')
for grp_id in grouped.groups:
grp = grouped.get_group(grp_id)
grp["diff"] = np.concatenate([np.array([0]),np.diff(grp['M'].values)]) # get the differences of M
grp["days_elapsed"] = np.concatenate([np.array([None]),days_elapsed(grp.index.values)]) #
new_df = new_df.append(grp)
以及从时间索引中获取已用天数的函数:
def days_elapsed(l):
res= []
print l
for x in range(1,len(l)):
res.append((l[x]-l[x-1])/np.timedelta64(1, 'D'))
return res