【问题标题】:Use conditions with date time python使用日期时间python条件
【发布时间】:2021-10-07 01:37:18
【问题描述】:

我正在使用我的 df 中的 DateTime,如下所示:

Time stamp Datetime time Category
2018/02/21,11:00 2018-02-21 11:00:00 11:00:00
2018/02/21,10:55 2018-02-2110:55. 10:55:00
2018/02/21,11:00 2018-02-21 11:00:00 11:00:00

“类别”列中的值取决于具体条件。

条件:

0:00

6:00

22:00

20:00

我试图创建一个函数:

def categories (row):
    if row["Time"]> 0 and row["Time"] <6:
        return "B"

df.apply (lambda row: categories(row), axis=1)
TypeError: '>=' not supported between instances of 'datetime.time' and 'int'

我怎样才能创造条件???

【问题讨论】:

  • 将这些 datetime.time 对象转换为类型 int 或反之亦然。
  • 您在使用熊猫吗?如果是这样,恕我直言,使用熊猫日期时间要简单得多;例如答案to this question中所示。

标签: python datetime


【解决方案1】:

正如错误所说,您正在将 datetime 与 int 进行比较,它不知道如何计算 11:00:00 是否大于值“6”,您可以与 datetime.time 而不是 int 进行比较

if row["Time"] > datetime.time(0,0,0) and row["Time"]

时间构造函数看起来像 时间(小时 = 0,分钟 = 0,秒 = 0)

【讨论】:

  • TypeError: 描述符 'time' 需要一个 'datetime.datetime' 对象,但收到了一个 'int'
  • 这取决于你如何导入 datime,尝试 time() 自己,datetime.time() 或 datetime.datetime.time()
猜你喜欢
  • 2015-07-13
  • 2012-09-14
  • 1970-01-01
  • 2021-08-31
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
  • 2011-09-18
相关资源
最近更新 更多