如何修改Python代码实现按分钟生成患者在院时间段的时间序列?
如何修改Python代码实现按分钟生成患者在院时间段的时间序列?
嘿,你猜得完全没错!核心就是调整pd.date_range里的freq参数,我来给你一步步讲怎么改:
原来你用freq='H'是按小时生成时间序列,要改成按分钟的话,只需要把freq改成'T'(或者'min',这俩在pandas里都是分钟的缩写,效果完全一样)。
不过还要注意一个容易忽略的小细节:pd.date_range默认是左闭右开的规则——也就是只会包含起始时间,不会包含结束的那一分钟(比如患者1的2021-11-07 17:58:00),而你想要的输出是包含结束时间的,所以得加上inclusive='both'参数,确保首尾时间都被包含进去。
修改后的完整代码如下:
# 生成每分钟的时间序列,指定频率和包含首尾时间 TEST['Date'] = [pd.date_range(a, b, freq='T', inclusive='both') for a, b in zip(TEST.ARRIVAL_DATE_TIME, TEST.DISPOSITION_DATE)] # 将嵌套的时间序列展开成每行一条记录 s = TEST[['Date', 'ID']].explode('Date').reset_index(drop=True) # 把时间列重命名成你想要的字段名 s = s.rename(columns={'Date': 'DATE_HOUR_MIN_IN_ED'})
这样运行后,就能得到你想要的输出:每个患者从入院到出院的每一分钟都会生成一条记录,比如患者1会从2021-11-07 08:35:00一直到2021-11-07 17:58:00,每分钟一条,完全符合你的需求~
备注:内容来源于stack exchange,提问作者Raven
相关产品推荐
相关产品推荐

