gpt4 book ai didi

python - 比较两个日期列 - 检查它们是否在范围内 - 从第三列取值

转载 作者:行者123 更新时间:2023-12-04 08:52:13 25 4
gpt4 key购买 nike

我正在研究一个问题,即是否在入院后的负 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:系列的真值不明确。使用 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']

    最佳答案

    使用迭代。系列不能给出单个 bool 值 if期待。

    for index,row in df_final.iterrows():
    if (df_final['date_rslt'][index] < (df_final['date_admis'][index] + timedelta(days = + 3))) and (df_final['date_rslt'][index] > (df_final['date_admis'][index] + timedelta(days = - 1))):
    department.append(df_final['dept'][index])
    else:
    department.append(np.NaN)
    输出:
    [nan, 'INT', 'ER']

    关于python - 比较两个日期列 - 检查它们是否在范围内 - 从第三列取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64043731/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com