gpt4 book ai didi

python - Pandas - 解析带和不带毫秒的时间数据

转载 作者:行者123 更新时间:2023-12-04 17:57:38 24 4
gpt4 key购买 nike

如果时间的格式为 2007-08-06T18:11:44.688Z,但不将毫秒视为 2007-08-06T18:11,您将如何解析时间数据: 44Z

pd.to_datetime(x.split('Z')[0], errors='coerce', format='%Y-%m-%dT%H:%M:%S.%f ') 删除 Zulu 标记失败,因为 . 有时会丢失。

pd.to_datetime(x.split('.')[0], errors='coerce', format='%Y-%m-%dT%H:%M:%S') 由于 . 有时会丢失,因此删除毫秒失败。

pd.to_datetime(x.split('.|Z')[0], errors='coerce', format='%Y-%m-%dT%H:%M:%S' ) 有时也会失败,尽管它看起来应该在两种情况下拆分,但 0 成员是我们想要的部分,因此总是给出以秒为单位的有效时间。

最佳答案

IIUC 你可以简单地使用 pd.to_datetime(df_column_or_series) 而不指定 format 参数应该正确解析你的日期时间格式

有或没有 Zulu 标记,都不会改变任何东西 - 在您的字符串转换为 pandas datetime dtype 后,您将拥有相同的 dtype:

In [366]: pd.to_datetime(pd.Series(['2007-08-06T18:11:44.688Z'])).dtypes
Out[366]: dtype('<M8[ns]')

In [367]: pd.to_datetime(pd.Series(['2007-08-06T18:11:44.688'])).dtypes
Out[367]: dtype('<M8[ns]')

In [368]: pd.to_datetime(pd.Series(['2007-08-06T18:11:44'])).dtypes
Out[368]: dtype('<M8[ns]')

In [369]: pd.to_datetime(pd.Series(['2007-08-06'])).dtypes
Out[369]: dtype('<M8[ns]')

In [371]: pd.to_datetime(pd.Series(['2007-08-06T18:11:44.688']), format='%Y-%m-%dT%H:%M:%S.%f').dtypes
Out[371]: dtype('<M8[ns]')

关于python - Pandas - 解析带和不带毫秒的时间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38855222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com