将'hhmm'int转换为正确的格式

时间:2019-02-27 10:18:57

标签: python pandas time

我对Python比较陌生

我有一列代表一天中时间的数据-但采用整数格式 hhmm -即1230、1559。

我知道应该将其转换为正确的时间格式,以便可以正确使用它。

我花了一段时间搜索答案,但没有找到明确的解决方案。

谢谢

1 个答案:

答案 0 :(得分:2)

如果需要日期时间,则功能to_datetime也需要date,有时需要添加dt.time

另一种解决方案是将值转换为timedeltas-但必须使用格式HH:MM:SS

df = pd.DataFrame({'col':[1230,1559]})

df['date'] = pd.to_datetime(df['col'], format='%H%M')
df['time'] = pd.to_datetime(df['col'], format='%H%M').dt.time

s = df['col'].astype(str)
df['td'] = pd.to_timedelta(s.str[:2] + ':' + s.str[2:] + ':00')
print (df)
    col                date      time       td
0  1230 1900-01-01 12:30:00  12:30:00 12:30:00
1  1559 1900-01-01 15:59:00  15:59:00 15:59:00

print (df.dtypes)
col               int64
date     datetime64[ns]
time             object
td      timedelta64[ns]
dtype: object