【问题标题】:combine() argument 2 must be datetime.time, not Seriescombine() 参数 2 必须是 datetime.time,而不是 Series
【发布时间】:2020-10-12 15:32:50
【问题描述】:

我的数据框中有两列 start_time 和 finish_time 在我的数据集中,我必须找到它们之间的时间并向数据框中添加一个新列 time_between。实际上,我希望将 time_between 设为分钟。我尝试了代码,但我得到了标题上的错误。

datetime.combine(date.today(), df["finish_time"]) - datetime.combine(date.today(), df["start_time"])


    TypeError                                 Traceback (most recent call last)
<ipython-input-35-052753af9b58> in <module>
      1 from datetime import datetime, date
      2 
----> 3 datetime.combine(date.today(), df["finish_time"]) - datetime.combine(date.today(), df["start_time"])

TypeError: combine() argument 2 must be datetime.time, not Series

我正在共享项目存储库,因此您可以查看所有代码和我的 excelsheet:

https://github.com/baranacikgoz/Reading-Habits-Data-Science-Project

【问题讨论】:

  • df['time_between'] = df["finish_time"] - df["start_time"] 是否适合您?如果不是,为什么?
  • 没有伴侣没有。 TypeError: 不支持的操作数类型 -: 'datetime.time' 和 'datetime.time'

标签: python pandas datetime data-science


【解决方案1】:

你快到了:

    def time_between(df):
       return datetime.combine(date.today(), df["finish_time"]) - datetime.combine(date.today(), df["start_time"])

    df['time_between'] = df.apply(time_between, axis=1)

您必须将代码应用于数据框,因为 pandas 不支持减法 datetime.time 对象。

【讨论】:

  • 非常感谢,但它显示为天,所以所有值都是 0 天,我怎样才能将它们更改为分钟?
  • 对不起,你的代码完全正常运行,我在评论之前错过了某个地方再次感谢
猜你喜欢
  • 2020-04-02
  • 2021-02-14
  • 2019-06-28
  • 1970-01-01
  • 2015-04-24
  • 2018-10-11
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
相关资源
最近更新 更多