【发布时间】:2021-01-10 14:03:56
【问题描述】:
我正在研究一个问题,即是否在入院后的负 1 到 + 3 天内收到患者的测试结果。如果是这样,我想检索他们首先被录取到哪个部门。
复杂性来自入院期间接受多次检测的患者以及在短时间内重新入院的患者。每周测试 3 次并不少见。然而,未经录取的测试也是可能的。我想确保我得到与考试结果及其日期相关的录取部门。
数据来自使用 python 连接的两个不同的表(出于技术原因/由于不同的数据源)。我已经在 pin 上完成了这些 dfs 的左(外)连接,因此最终 df 是长格式。
例如
pin= [1522, 1522, 3830]
date_rslt = ['2018-04-18', '2018-04-18', '2018-04-09']
date_admis = ['2017-12-14', '2018-04-17', '2018-04-08']
dept = ['ER', 'INT', 'ER']
df = pd.DataFrame(list(zip(pin, date_rslt, date_admis, dept)),
columns =['pin', 'date_rslt', 'date_admis', 'dept'])
问题:
- 以下代码向我抛出此错误,但我看不出代码有什么问题。如果解决了,这能正常工作吗?
- 有任何改进此代码的建议吗?
ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
import pandas as pd
from datetime import datetime, timedelta
department = []
if (df_final['resultaatdatum'] < (df_final['date_admission'] + timedelta(days = + 3))) and (df_final['resultaatdatum'] > (df_final['date_admission'] + timedelta(days = - 1))):
department.append(df_final['admissiondepartment'])
else:
department.append(NaN)
df_final['department'] = department
我应该得到df_final['department'] = [NaN, 'INT', 'ER']
【问题讨论】: