【问题标题】:String time convert to only timestamp using python使用python将字符串时间转换为仅时间戳
【发布时间】:2021-06-21 02:58:51
【问题描述】:

我在 excel 的每一行中都有一个像这样的时间 00:11:21.600000 我想以小时和分钟为单位转换为时间戳

【问题讨论】:

标签: python-3.x


【解决方案1】:

添加到 Juilian Focks 的答案中,如果您有一个名为 df["time"] 的列,您可以通过将每个元素迭代为时间戳对象:

from datetime import datetime
for  i in range(0,len(df["time"])):
 df["time"][i] = df["time"][i].strftime("%H:%M")

或者你可以使用列表推导:

dt_array = [x.strftime("%H:%M") for x in df["time"]]

然后dt_array 包含整个列作为日期时间对象

【讨论】:

  • 仍然收到此错误 TypeError: strptime() argument 1 must be str, not datetime.time
  • 这意味着您正在尝试将某些内容转换为已经是日期时间的日期时间。 df["time"] 已经是日期时间了。
  • 但该列的数据类型是对象
  • 是的,它是一个对象,一个datetime object
  • 我刚刚编辑了答案,请测试它是否适合你。
【解决方案2】:

您可以使用内置的日期时间模块:

from datetime import datetime


your_time = datetime.strptime('00:11:21.600000', '%H:%M:%S.%f')

那么你就有了一个日期时间对象your_time,你可以对它执行不同的操作,例如:

获取带小时和分钟的str:your_time.strftime('%H:%M')

更多方法参见文档here

【讨论】:

  • df['newcolname'] = datetime.strptime(df['time'], '%H:%M:%S.%f') 低于错误
  • TypeError: strptime() 参数 1 必须是 str,而不是 Series
  • 这是因为您试图将该 strptime 应用于整个列,您必须像 Julian 建议的那样遍历每个项目并将其转换为 datetime 对象。
  • 你能指导我如何迭代每个项目吗?我正在学习谢谢!
  • df['newcolname'] = pd.to_datetimee(df['time'], '%H:%M:%S:%f') 低于 errorValueError: time data '00:45 :36' 与格式 '%H:%M:%S:%f' 不匹配(匹配)
猜你喜欢
  • 1970-01-01
  • 2020-11-22
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
相关资源
最近更新 更多