将字符串转换为日期格式:DD-MMM-YYYY 到 Python 中的日期时间 [重复]

Posted

技术标签:

【中文标题】将字符串转换为日期格式:DD-MMM-YYYY 到 Python 中的日期时间 [重复]【英文标题】:Convert a string to date Format: DD-MMM-YYYY to date time in Python [duplicate] 【发布时间】:2018-06-11 13:44:11 【问题描述】:

我有一个 pandas 数据框,其中有一列包含如下字符串

01-May-2012  16:44:55.113
01-Jun-2012  18:49:57.466
01-May-2012  14:64:45.119
01-May-2012  14:23:55.113

我想将其转换为以下格式。

2012-05-01 16:44:55.113
2012-06-01 18:49:57.466
2012-05-01 14:64:45.119
2012-05-01 14:23:55.113

我尝试使用 pandas.to_datetime(df['date time']) 但我得到错误未知字符串值。我还尝试将字符串分成两列并仅转换日期部分但遇到类似错误

【问题讨论】:

不,这并没有解决我的问题。当我尝试使用它时,我以空白单元格结束 @AntonvBR - 我尝试探索所有相关链接,但找不到答案。如果是骗子,你能把它链接在这里 【参考方案1】:

可能是这样的:Convert Pandas Column to DateTime。它很旧,并且接受的答案指定了大多数情况下不需要的格式。

但是,看看这个:

import pandas as pd

data = dict(dates=['01-May-2012  16:44:55.113',
                   '01-Jun-2012  18:49:57.466',
                   '01-May-2012  14:64:45.119',  # <--- Error, minute can't be more than 60
                   '01-May-2012  14:23:55.113'])

df = pd.DataFrame(data)
df.dates = pd.to_datetime(df.dates, errors='coerce')

print(df)

你明白了(感谢@3novak 提出的错误='coerce'):

                    dates
0 2012-05-01 16:44:55.113
1 2012-06-01 18:49:57.466
2                     NaT
3 2012-05-01 14:23:55.113

【讨论】:

如果你想明确指定格式,你可以使用pd.to_datetime(df['dates'], format='%d-%b-%Y %H:%M:%S.%f') @3novak 是的,你可以,但有趣的是这里的数据有错误。 是的,您也可以在pd.to_datetime() 调用中使用errors='coerce' 选项来解决该问题,但它会在这些位置返回NaT 值。 抱歉,错误是我的错字。数据没有错误。那是 14:54:45.119 @VikyN 好吧。这是一个骗子。只需使用 pd.to_datetime() 对我有用。如果是这种情况,请使用无效的数据更新问题。

以上是关于将字符串转换为日期格式:DD-MMM-YYYY 到 Python 中的日期时间 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将日期时间转换为dojo中dd-MMM-yyyy HH:MM的正确日期时间格式

如何将给定的字符串格式解析为 dd-MMM-yyyy hh:mm:ss:aa?

如何将日期格式“dd-MMM-yy”的字符串转换为DateType [重复]

在 pyspark 问题中转换 24 小时日期格式

如何在引导日期选择器中更改日期格式(dd-mmm-yyyy)

字符串值到日期格式的液体转换