混合日期格式更新



将数据帧中的所有日期更改为标准日期时间

这个链接有帮助,但并没有完全让我明白,或者更可能的是,我并没有跨越到那里。目前,混合日期";2021-04-15"04152021"2021年4月15日"NaN/NULL";所有这些都存在于这些列中的每一列中。

独立地,我没有问题转换标准日期或整数。

FileDates = ['HIRE1','HIRE2','DATE3','DOB','DATE4','DATE5','DATE6','DATEn+x']
for c in FileDates:
df[c]=pd.to_datetime(df[c],errors = 'ignore')
import datetime
datetime.datetime.strptime('01012020','%m%d%Y').strftime('%m/%d/%Y')
'01/01/2020'

问题-我应该如何或如何通过并重新格式化日期,以便在一两次通过中可读?我想我错过了一些基本的东西。

现在,通过所有";日期";更新,但如果我尝试更新Integer日期,我会在意外格式(m/d/y(或Null格式上出错。

更新-谢谢,此外,以下链接也很有用。Pandas格式日期时间,具有许多不同的日期类型

如果您的格式列表只包括"2021-04-15"04152021"2021年4月15日";以及";NaN/NULL";如果你想把它转换成ISO格式,你可以试试这个:

def convert_datetime(input):
"""Try to parse a datetime as yyyy-mm-dd, dd/mm/yyyy and ddmmyyyy,
and convert it to ISO format"""
try:
return datetime.strptime(input, "%Y-%m-%d").isoformat()
except ValueError:
pass
try:
return datetime.strptime(input, "%d/%m/%Y").isoformat()
except ValueError:
pass
try:
return datetime.strptime(input, "%d%m%Y").isoformat()
except ValueError:
pass
# the input could not be parsed, return a default value
return None

如果你可能的格式也包含其中一种格式,但月份和日期颠倒了,你会遇到麻烦,你不能确定每次都能正确解析日期。

最新更新