datetime的内置功能支持直接使用'〈〉=...'比较两个datetime.datetime对象。然而,我想只比较小时和分钟的两个datetime。
例如,如果我们有'2016-07-01 11:00:00'和'2017-07-01 09:00:00',我想说'2016-07-01 11:00:00'大于11:00〉9:00。我没有看到任何我们可以使用的内置功能。
相反,我做的事情是比较每一行是否
data = data[time_start.hour * 60 + time_start.minute
< (data['time'].hour * 60 + data['time'].minute)
< time_end.hour * 60 + time_end.minute ]
但有一个错误:
AttributeError: 'Series' object has no attribute 'hour'
我用的是python 2.7,这也是python 3的问题吗?
做这样的比较有什么好方法呢?谢谢!
3条答案
按热度按时间wxclj1h51#
我用的是python 2.7,这也是python 3的问题吗?
这与Python版本无关。
如果你使用pandas〉0.16,你需要使用
dt
accessor:data['time'].dt.hour
和data['time'].dt.minute
例如:
8yparm6h2#
如果输入的日期是一个str,并且按照yyyy-mm-dd hh:mm:ss的顺序排列,为什么不将其作为字符串进行比较呢?
vkc1a9a23#
我怀疑初学者在这里的陷阱是,如果你从时间中得到一个只有时间的字符串,那么你需要确保条件的时间在一个小时的数字前面有一个零,否则它不会进行比较。我刚刚失去了2个小时......我是绿色,非常新手。这对我很有效
打开时间看起来像“09:30:00”