我在使用数据框中的时间列分析数据时遇到问题(我从excel文件打开)。指定列中的值如下所示:
05:29:04,05:36:52,05:43:20,05:50:39,05:57:54
他们假设代表“到达和离开”时间,但在python中,该列被识别为对象而不是时间序列。
我不确定如何将列转换为时间序列 - 我尝试了几个函数,例如to_datetime
或timestamp
,但一直都会出错,所以我不确定完全了解如何转换列。
答案 0 :(得分:0)
我认为您需要通过timedelta
s将值转换为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,month
和day
:
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