我有一列时间戳,我想在我的pandas数据帧中转换为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
),但我不知道该怎么做。
尝试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]