我有一个Pandas数据框在Python 2.7中。
import pandas as pd
trial_num = [1,2,3,4,5]
sail_rem_time = ['11:33:11','16:29:05','09:37:56','21:43:31','17:42:06']
dfc = pd.DataFrame(zip(*[trial_num,sail_rem_time]),columns=['Temp_Reading','Time_of_Sail'])
print dfc
数据框如下所示:
Temp_Reading Time_of_Sail
1 11:33:11
2 16:29:05
3 09:37:56
4 21:43:31
5 17:42:06
这个数据框来自于一个*.csv文件。我使用Pandas将*.csv文件读入为一个Pandas数据框。当我使用print dfc.dtypes
时,它告诉我列Time_of_Sail
的数据类型是object
。我想把这一列转换为datetime
数据类型,但我仅想保留时间部分 - 我不需要年份、月份和日期。
我可以尝试这样做:
dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
但问题是,当我运行print dfc.dtypes
时,它仍然显示列 Time_of_Sail
是 object
。
有没有一种方法可以将此列转换为仅具有时间的datetime格式?
额外信息:
要创建上面的数据框和输出,也可以使用以下代码:
import pandas as pd
trial_num = [1,2,3,4,5]
sail_rem_time = ['11:33:11','16:29:05','09:37:56','21:43:31','17:42:06']
data = [
[trial_num[0],sail_rem_time[0]],
[trial_num[1],sail_rem_time[1]],[trial_num[2],sail_rem_time[2]],
[trial_num[3],sail_rem_time[3]]
]
dfc = pd.DataFrame(data,columns=['Temp_Reading','Time_of_Sail'])
dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
print dfc
print dfc.dtypes
zip()
返回的迭代器作为list()
的参数传递,而不是显式地创建列表,如list(zip([trial_num,sail_rem_time]))
。这将返回一个DataFrame()
期望的列表。 - user2027202827