具有不同长度日期字符串的pandas.to_datetime

时间:2019-02-27 17:53:38

标签: python pandas datetime string-to-datetime

我在熊猫数据框中有一列时间戳想要转换为datetime。日期格式为%Y-%m-%d-%H-%M-%S无法识别的pd.to_datetime。我已经手动输入了以下格式:

df['TIME'] = pd.to_datetime(df['TIME'], format = '%Y-%m-%d-%H-%M-%S')

我的问题是有些时候没有秒,所以时间更短
 (format = %Y-%m-%d-%H-%M

如何将所有这些字符串保存到日期时间?

我当时想可以在较短的日期末尾添加零秒(-0),但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

尝试strftime,如果您想要正确的格式,并且熊猫无法识别您的自定义日期时间格式,则应明确提供

from functools import partial

df1 = pd.DataFrame({'Date': ['2018-07-02-06-05-23','2018-07-02-06-05']})
newdatetime_fmt = partial(pd.to_datetime, format='%Y-%m-%d-%H-%M-%S')
df1['Clean_Date'] = (df1.Date.str.replace('-','').apply(lambda x: pd.to_datetime(x).strftime('%Y-%m-%d-%H-%M-%S'))
                                                 .apply(newdatetime_fmt))

print(df1,df1.dtypes)

输出:

              Date          Clean_Date
0  2018-07-02-06-05-23 2018-07-02 06:05:23
1     2018-07-02-06-05 2018-07-02 06:05:00 
Date                  object
Clean_Date    datetime64[ns]