【问题标题】:Remove milliseconds from time format in Python从 Python 中的时间格式中删除毫秒
【发布时间】:2020-12-16 18:56:28
【问题描述】:

请参考本文末尾的下图。

由于某种原因,红色列 (AVERAGE_TIME) 具有显示微/毫秒的时间格式。虽然黄色列 (TOTAL_TIME) 不显示此信息。

我已经使用黄色/红色箭头突出显示的相同命令将两列都转换为字符串。

我怎样才能使红色列与黄色列的格式相同?所以基本上没有微/毫秒。

【问题讨论】:

  • 你试过datetime的strftime吗?
  • 嗨@gavin,我没有尝试strftime,但我尝试了strptime()。我相信我应该使用后者,因为列是字符串(对吗?)。这很奇怪,因为当我使用 strptime() 时,即使是 '%H%M%S' 格式,它也会返回给我 yyyy/mm/dd...

标签: python dataframe jupyter-notebook data-science


【解决方案1】:

您可能需要添加一些额外的步骤才能获得您想要的持续时间的确切格式。但是,它不会过于复杂。例如,如果您不想要微秒,只需将 .seconds 添加到 delta 对象即可。

>>> td = timedelta(seconds=71113.45)
>>> td
datetime.timedelta(seconds=71113, microseconds=450000)
>>> td.seconds
71113

但是,您可能必须自己将这些转换为分钟数。另外,如果您选择采用这种方式,请查看 this thread,它侧重于在 str 中格式化 timedelta


或者,您可以在直接通过 timedelta 传递秒值之前round 关闭秒值。

str(timedelta(seconds=round(df_sb.iloc[i, 5])))

【讨论】:

  • 嗨,加文,替代方案实际上为我解决了这个问题。我没有允许浮点值,而是将结果四舍五入为整数值,然后再将它们转换为 hh:mm:ss。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
  • 1970-01-01
  • 2013-03-03
  • 2012-10-18
相关资源
最近更新 更多