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

时间:2014-03-24 17:59:16

标签: python pandas

我有一个带有分层索引(ID& Date)的df并测量M. 我想为我的df添加两个新措施;第一个是来自先前观察的测量M的百分比变化,第二个将是经过的天数。 所有这些都在ID的“窗口”内(即每个ID中的第一个观察值对于两个新测量值都是零)

1 个答案:

答案 0 :(得分:0)

一种方法是按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