Pandas减去日期得到手术患者的住院时间



我有一个手术活动的数据框架,包括入院日期(ADMIDATE)和出院日期(DISDATE)。它是600k行乘78列,但我对它进行了过滤,以用于特定的手术。我想计算逗留的时间并将其添加为另一列。通常我用

df["los"] = (df["DISDATE"] - df["ADMIDATE"]).dt.days

我最近必须清理数据,并且必须以与以前不同的方式完成,因为我现在得到负损失,例如

tbody> <<tr>
DISDATE.。th ADMIDATE。 <>。洛杉矶。
2019-12-242019-12-08-43805。
2019-05-15。50 2019-03-26
2019-10-11。2019-10-074。
2019-06-202019-06-164
2019-04-112019-04-083

您的示例在正确的输出(第一行为16天)下运行良好

你可以试一下,看看问题是否仍然存在:

import io
data = df[['DISDATE', 'ADMIDATE']].to_csv()
test = pd.read_csv(io.StringIO(data), index_col=0,
parse_dates=['DISDATE', 'ADMIDATE'])
print(test['DISDATE'].sub(test['ADMIDATE']).dt.days)

输出:

0    16
1    50
2     4
3     4
4     3
dtype: int64

要调试你的坏日期,试试:

df.loc[pd.to_datetime(df['ADMIDATE'], errors='coerce').isna(), 'ADMIDATE']

您应该看到值不是正确日期的行。

相关内容

最新更新