Python/Pandas 仅将字符串转换为时间

标签 python datetime pandas dataframe

我在 Python 2.7 中有以下 Pandas 数据框。

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_Sailobject

有没有办法将此列转换为只有时间的日期时间格式?

其他信息:

要创建上述数据框和输出,这也可以:

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

最佳答案

这两行:

dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]

可以写成:

dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'],format= '%H:%M:%S' ).dt.time

关于Python/Pandas 仅将字符串转换为时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37801321/

相关文章:

python - 如何将 Python 十进制转换为 SQLite 数字?

jquery - 将日期时间选择器添加到 TextBoxFor 字段 - MVC 5/Bootstrap 3

python - 从 google.cloud.logging_v2 导入类型 ImportError : cannot import name types

c# - 将 TimeDelta.Elapsed Days 中的每一天添加到列表中

c# - Microsoft Graph DateTimeTimeZone 到 LocaldateTime

python - 跳过 read_csv 中缺失值的行

python - 用另一个数据帧的值替换 Pandas 数据帧的多个值的最快方法

python-3.x - 给定增长率和特殊规则,如何获得 Pandas 的累积增长?

python - 在 python-riak 客户端 l 中将 erlang 模块和 erlang 函数发送到 mapreduce 面的确切方法是什么

python - 操作两个列表的最简洁方法,在 python 中返回列表列表