Python Pandas-将日期转换为datetime,日-月-年-月-日无法解析日期

Python Pandas-将日期转换为datetime,日-月-年-月-日无法解析日期,python,pandas,Python,Pandas,我有一个病人和手术的数据框架,有6个日期列。日期的格式为 年月日。要获得住院时间,我需要从出院日期(DISDATE)中减去入院日期[入院日期]。我想将日期列更改为日期时间列 例如 ADMIDATE DISDATE 0 06/06/2014 07/06/2014 1 23/06/2014 23/06/2014 如果使用 pd.read_csv('/Users/.......csv', parse_dates=['ADMIDATE', 'DISDATE']) 我明白了

我有一个病人和手术的数据框架,有6个日期列。日期的格式为 年月日。要获得住院时间,我需要从出院日期(DISDATE)中减去入院日期[入院日期]。我想将日期列更改为日期时间列

例如

    ADMIDATE    DISDATE
0   06/06/2014  07/06/2014
1   23/06/2014  23/06/2014
如果使用

pd.read_csv('/Users/.......csv', parse_dates=['ADMIDATE', 'DISDATE'])
我明白了

    ADMIDATE    DISDATE
0   2014-06-06  2014-07-06
1   2014-06-23  2014-06-23
6月7日变成了7月6日。(日期,第[0]行) 如果我使用更严格的

for col in ['ADMIDATE', 'DISDATE']:
    df[col] = pd.to_datetime(df[col], format='%d/%m/%Y')
它起作用了

ADMIDATE    DISDATE
0   2014-06-06  2014-06-07
1   2014-06-23  2014-06-23
但它不会接受许多空行,例如患者在数据收集时尚未出院。我可以在excel中格式化日期列,将csv转换为年-月-日格式,然后使用解析日期,它工作正常,但我想知道如何使用
to_datetime

dayfirst
此参数强制解析器首先解释第一天

df.apply(pd.to_datetime, dayfirst=True)

    ADMIDATE    DISDATE
0 2014-06-06 2014-06-07
1 2014-06-23 2014-06-23
要指定列,请执行以下操作:

df[['ADMIDATE', 'DISDATE']].apply(pd.to_datetime, dayfirst=True)

    ADMIDATE    DISDATE
0 2014-06-06 2014-06-07
1 2014-06-23 2014-06-23

error='胁迫'
要容纳丢失的数据,请执行以下操作:

df[['ADMIDATE', 'DISDATE']].apply(
    pd.to_datetime, dayfirst=True, errors='coerce'
)

    ADMIDATE    DISDATE
0 2014-06-06 2014-06-07
1 2014-06-23 2014-06-23

非常好,非常有用,谢谢。dayfirst成功了。