从时间对象python中删除时间分钟

从时间对象python中删除时间分钟,python,pandas,dataframe,time,Python,Pandas,Dataframe,Time,在pandas数据帧中有一个字段,我希望从中截断分钟,即从时间转换为字符串,拆分它并仅保留小时 我的数据帧中的时间字段是object类型,我尝试执行的操作如下(顺便说一下,意外是我的数据帧): 例如,我想做的是将17:45改为17 事故数据帧的图像如下所示 时间对象的数据类型如下所示 当我运行上述代码时,我得到一个错误“TypeError:'int'对象不可下标” 我知道这是某种形式的铸造错误,但我不知道如何修复它。 (我对Python很陌生) 如果需要,可以重新生成csv文件(此处截断以仅

在pandas数据帧中有一个字段,我希望从中截断分钟,即从时间转换为字符串,拆分它并仅保留小时

我的数据帧中的时间字段是object类型,我尝试执行的操作如下(顺便说一下,意外是我的数据帧):

例如,我想做的是将17:45改为17

事故数据帧的图像如下所示

时间对象的数据类型如下所示

当我运行上述代码时,我得到一个错误“TypeError:'int'对象不可下标”

我知道这是某种形式的铸造错误,但我不知道如何修复它。 (我对Python很陌生)

如果需要,可以重新生成csv文件(此处截断以仅包含相关字段)。 事故指数、位置东向、位置北向、经度、纬度、警察部队、事故严重程度、车辆数量、伤亡人数、日期、一周的天数、时间、,
200501BS00001525680178240,-0.191170,51.489096,1,2,1,04/01/2005,3,17:42

日期时间模块的
strftime()
需要有一个格式参数(请参见下面的正确用法)

(一份好的
strftime()
备忘单可用)

在你的情况下,看起来你只是想知道小时数。为此,您应该使用以下格式字符串来获取小时:
“%H”
。如果需要将其作为一个整数(如果需要对其进行数学运算),只需将其用
int()
包围即可。如果只想显示这个数字,可以将其保留为字符串<默认情况下,code>strftime()返回字符串

请尝试以下代码:

hour = int(row['Time'].strftime("%H"))

datetime
模块的
strftime()

(一份好的
strftime()
备忘单可用)

在你的情况下,看起来你只是想知道小时数。为此,您应该使用以下格式字符串来获取小时:
“%H”
。如果需要将其作为一个整数(如果需要对其进行数学运算),只需将其用
int()
包围即可。如果只想显示这个数字,可以将其保留为字符串<默认情况下,code>strftime()
返回字符串

请尝试以下代码:

hour = int(row['Time'].strftime("%H"))

您可以使用时间列的
hour
属性

输出

               Time  val  Hour
2020-05-01 02:00:00   39     2
2020-05-01 02:45:00   23     2
2020-05-01 03:30:00    9     3
2020-05-01 04:15:00   25     4
2020-05-01 05:00:00   41     5

您可以使用时间列的
hour
属性

输出

               Time  val  Hour
2020-05-01 02:00:00   39     2
2020-05-01 02:45:00   23     2
2020-05-01 03:30:00    9     3
2020-05-01 04:15:00   25     4
2020-05-01 05:00:00   41     5

请包括样本输入更新。我不知道是否可以添加一个数据帧在这里运行。@user6074035嗯。。。你是在找:
df['Time'].str.split(':').str[0].astype(int)
?嗨,乔恩,你已经帮我修好了!!如果你加上它作为一个正确的答案,我会把它标记为解决方案。感谢您的帮助,请包括样本输入更新。我不知道是否可以添加一个数据帧在这里运行。@user6074035嗯。。。你是在找:
df['Time'].str.split(':').str[0].astype(int)
?嗨,乔恩,你已经帮我修好了!!如果你加上它作为一个正确的答案,我会把它标记为解决方案。谢谢你的帮助嘿,谢谢你的帮助,我试过了,但还是犯了同样的错误(我忘记了strftime中的参数,但我仍然得到相同的错误。@user6074035 Hm,这很奇怪。你能编辑你的帖子以包含回溯的全文吗?嘿,我将尝试找出如何做到这一点,我需要找出如何在Spyder中添加完整的堆栈跟踪,因为默认情况下它不会提供。我已经添加了如果您在“hour=…”语句上方的程序中添加了“print(type(row['Time'])”,那么它会打印吗?如果没有,它会打印什么?我不知道程序的其余部分,但我知道一些数据库访问库会自动将日期列结果转换为datetime.datetime对象,但是我想确定是这样的。嘿,谢谢你的帮助。实际上我收到了相同的错误“TypeError…”嘿,谢谢你的帮助,我试过了,但还是有同样的错误(我忘记了strftime中的参数,但我仍然得到相同的错误。@user6074035 Hm,这很奇怪。你能编辑你的帖子以包含回溯的全文吗?嘿,我将尝试找出如何做到这一点,我需要找出如何在Spyder中添加完整的堆栈跟踪,因为默认情况下它不会提供。我已经添加了如果您在“hour=…”语句上方的程序中添加了“print(type(row['Time'])”,那么它会打印吗?如果没有,它会打印什么?我不知道程序的其余部分,但我知道一些数据库访问库会自动将日期列结果转换为datetime.datetime对象,但是我想确定是这样的。嘿,谢谢你的帮助。实际上我收到了相同的错误“TypeError…”
               Time  val  Hour
2020-05-01 02:00:00   39     2
2020-05-01 02:45:00   23     2
2020-05-01 03:30:00    9     3
2020-05-01 04:15:00   25     4
2020-05-01 05:00:00   41     5