我想用lambda创建一个能够识别两种不同格式的解析函数
"2014-01-06 15:23:00"
和
"2014-01-06"
我们的想法是使用此函数创建一个pandas数据帧,但在某些值中缺少小时
这是我的第一个想法
parse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S') if x is True else pd.datetime.strptime(x, '%Y-%m-%d')
似乎x是True是不正确的
任何想法??
答案 0 :(得分:2)
dateutil
有一个处理多种格式的解析器:
>>> dateutil.parser.parse('2015-07-04')
datetime.datetime(2015, 7, 4, 0, 0)
>>> dateutil.parser.parse('2015-07-04 11:23:00')
datetime.datetime(2015, 7, 4, 11, 23)
>>> dateutil.parser.parse('2015-07-04T11:23:56')
datetime.datetime(2015, 7, 4, 11, 23, 56)
甚至像这样的非iso格式
>>> dateutil.parser.parse('5-6-15')
datetime.datetime(2015, 5, 6, 0, 0)