我有一个数据集,其中包含案例和属于这些案例的事件。在这种情况下,我想从每个事件中减去第一个事件的第一个日期时间,以获取自案件开始以来经过的时间。
我这样做:
grouped = data.groupby("case_id")
data["T_elapsed"] = grouped["event_id"].transform(lambda x: x-x.iloc[0])
它可以工作,但是对于更大的数据集来说它非常慢。有没有计算成本更低的替代方法可以做到这一点?
谢谢!
答案 0 :(得分:0)
使用first
或
Series
的{{3}},减去列data['event_id']
:
grouped = data.groupby("case_id")
data["T_elapsed"] = data['event_id'] - grouped["event_id"].transform('first')
grouped = data.groupby("case_id")
data["T_elapsed"] = data['event_id'] - grouped["event_id"].transform('last')