请帮忙。在我的样本中,每个病人都有多次治疗,每次治疗都从特定的一天开始。我的目标是计算每次治疗的差异。
还有,我所有的病人都在一列里。一旦有新病人来了,滞后差就得重新设置。
我当前的数据集格式:
df2 = pd.DataFrame({'patient': ['one', 'one', 'one', 'two','two', 'two'],
...: 'treatment_schedule': ['treatment1', 'treatment2', 'treatment3', 'treatment1', 'treatment2', 'treatment3'],
...: 'date': ['11/20/2022', '11/22/2022', '11/23/2022', '11/8/2022', '11/9/2022', '11/14/2022']})
df2
我想要的数据集格式:
df3 = pd.DataFrame({'patient': ['one', 'one', 'one', 'two','two', 'two'],
...: 'treatment_schedule': ['treatment1', 'treatment2', 'treatment3', 'treatment1', 'treatment2', 'treatment3'],
...: 'date': ['11/20/2022', '11/22/2022', '11/23/2022', '11/8/2022', '11/9/2022', '11/14/2022'],
...: 'lag_diff_days_between_each_treatment':[0, 2, 1, 0, 1, 5]}) ##### If no prior values for patient one, then like to see either null or zero
df3
2条答案
按热度按时间fnvucqvd1#
使用
DataFrameGroupBy.diff
,通过Series.dt.days
将时间增量转换为天数,并将0
中的缺失值替换为Series.fillna
:wnvonmuf2#
第一个月