将对象系列转换为pandas中的时间序列

时间:2018-01-30 06:37:17

标签: python pandas datetime timestamp time-series

我在使用数据框中的时间列分析数据时遇到问题(我从excel文件打开)。指定列中的值如下所示:

05:29:04,05:36:52,05:43:20,05:50:39,05:57:54

他们假设代表“到达和离开”时间,但在python中,该列被识别为对象而不是时间序列。

我不确定如何将列转换为时间序列 - 我尝试了几个函数,例如to_datetimetimestamp,但一直都会出错,所以我不确定完全了解如何转换列。

1 个答案:

答案 0 :(得分:0)

我认为您需要通过timedeltas将值转换为to_timedelta

df = pd.DataFrame({'A':list('abcde'),
                   'B':[4,5,4,5,5],
                   'col':['05:29:04', '05:36:52', '05:43:20', '05:50:39', '05:57:54']})

print (df)
   A  B       col
0  a  4  05:29:04
1  b  5  05:36:52
2  c  4  05:43:20
3  d  5  05:50:39
4  e  5  05:57:54

df['col'] = pd.to_timedelta(df['col'])

print (df.dtypes)
A               object
B                int64
col    timedelta64[ns]
dtype: object

如果将其转换为日期时间,默认情况下会添加year s,monthday

df['col'] = pd.to_datetime(df['col'], format='%H:%M:%S')
print (df)

   A  B                 col
0  a  4 1900-01-01 05:29:04
1  b  5 1900-01-01 05:36:52
2  c  4 1900-01-01 05:43:20
3  d  5 1900-01-01 05:50:39
4  e  5 1900-01-01 05:57:54
相关问题