先谢谢你的帮助。
我正在尝试转换一个日期时间,这是一个字符串在ISO格式的日期时间对象。但尝试了许多方法都没有成功。请您的帮助。
作为一个例子,我有一个列时间类似的 Dataframe ,如下所示。这是从数据库中提取的,这是输出的格式。
2018-12-04T04:39:26Z
2018-12-04T05:10:54.6Z
2018-12-04T05:17:32Z
2018-12-04T10:51:20.5Z
...
到目前为止我已经尝试过(多次尝试)但未成功的:
df.index = pd.to_datetime(df.index, format = "%Y-%m-%dT%H:%M:%SZ", errors='ignore')
df.index = pd.to_datetime(df.index)
df.time = df.time.map(lambda x: pd.to_datetime(dt.datetime.strptime(x, '%Y-%m-%dT%H:%M:%SZ'), format = '%d/%m/%Y %H:%M'))
再次感谢!
3条答案
按热度按时间cedebl8k1#
有点晚了,但我相信,这种React需要是可见的,以缓解人们的生活。
如果像你说的那样,它是从数据库中提取出来的,那么你可以在建立 Dataframe 的时候直接提取出来。大多数panda读取函数都有一个参数
parse_dates
,如documentation中所述:注意:iso8601格式的日期有一个快速路径。
因此,即使您有两个或更多的日期列,您也可以用一种极其简单的方式来完成。
tct7dpnv2#
I wanted to answer this before. In the end I just made a function that deals with different data inputs and also creates a dataframe with column names. Thanks ALollz for your comment regarding pd.to_datetime(df.index, errors='coerce').
因此,为了从ISO格式的字符串转换索引,我建立并遵循了以下顺序:
转换为日期时间后,请检查日期是否正确。如果读取错误,可能需要指定格式。
谢谢!
0yycz8jy3#
pandas.to_datetime()方法有一个“infer_datetime_format”参数,文档内容如下:
因此,将inferer_datatime_format设置为true,并保留format参数默认值,这对我很有效。
下面是我的案例: