【发布时间】:2015-01-29 19:58:55
【问题描述】:
考虑每个患者的测量数据框和时间戳
patient | timestamp | x
A | 2014-10-10 | 5.7
A | 2014-10-11 | 6.3
B | 2014-10-11 | 6.1
B | 2014-10-10 | 4.1
我的目标是计算d,连续计算x 和最近一次测量中的x 之间的差异。
按照here的建议,这是我使用的代码
df.sort("timestamp", inplace=True)
df['d'] = df.groupby('patient')['x'].transform(pd.Series.diff).fillna(0)
但是,当尝试在具有多个测量值的数据帧上运行此代码时
patient | timestamp | x_1 | ... | x_n
使用简单的循环:
df.sort("timestamp", inplace=True)
g=df.groupby('patient')
for x in df.columns:
if x.find('x')>=0:
df[x.replace('x','d')] = g[x].transform(pd.Series.diff).fillna(0)
代码运行很慢,
是否有更有效的方法来计算差异向量并将其连接到测量向量?
【问题讨论】:
标签: python pandas time-series