我有一个日期类型列,格式为'%m%d%Y%H%M%S'。我想将其转换为时间戳,使输出格式与上面指定的格式匹配。
然而,pd.to_datetime将其转换为'%Y%m%d%H%M%S'。如何将其转换回以前的格式?
答案 0 :(得分:0)
在python
(pandas
)中,日期时间的自定义格式不可能,默认格式为YYYY-MM-DD HH:MM:SS
。因此,如果需要,请使用strftime
转换为自定义strings
:
df = pd.DataFrame({'date':['02102017 040010','12212017 040010']})
df['datetime'] = pd.to_datetime(df['date'], format='%m%d%Y %H%M%S')
df['orig'] = df['datetime'].dt.strftime('%Y%m%d %H%M%S')
print (df)
date datetime orig
0 02102017 040010 2017-02-10 04:00:10 20170210 040010
1 12212017 040010 2017-12-21 04:00:10 20171221 040010
print (df.dtypes)
date object
datetime datetime64[ns]
orig object
dtype: object
print (df.applymap(type))
date datetime orig
0 <class 'str'> <class 'pandas._libs.tslib.Timestamp'> <class 'str'>
1 <class 'str'> <class 'pandas._libs.tslib.Timestamp'> <class 'str'>