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

问题描述 投票:0回答:1

我有一列时间戳,我想在我的pandas数据帧中转换为datetime。日期的格式是%Y-%m-%d-%H-%M-%Spd.to_datetime不承认。我已手动输入以下格式:

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

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

我怎样才能将所有这些字符串都提供给日期时间?

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

python pandas datetime string-to-datetime
1个回答
0
投票

尝试strftime,如果你想要正确的格式,如果Pandas无法识别你的自定义日期时间格式,你应该明确地提供它

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]
© www.soinside.com 2019 - 2024. All rights reserved.