繁体   English   中英

熊猫计算经过的天数和百分比变化

[英]Pandas calculate days elapsed and percent change

我有一个带有分层索引(ID和日期)的df,尺寸为M。我想在df中添加两个新的尺寸; 第一个是测量值M与先前观测值相比的百分比变化,第二个是经过的天数。 全部位于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)

以及从熊猫TimeIndex获取经过的天数的函数:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM