我在熊猫数据框中有一列时间戳想要转换为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
),但我不知道该怎么做。
答案 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]