我有一个来自数据帧和日期时间对象的时间戳,我想比较它们以在数据帧中进行选择。我的数据如下:
print(type(datetime.datetime.now()))
<class 'datetime.datetime'>
print(type((df.created_at[0])))
<class 'pandas._libs.tslibs.timestamps.Timestamp'>
如何使用日期时间对象选择该数据框中的特定行?如下:
df[df.created > datetime.datetime.now()]
但它返回给我以下错误消息:
TypeError: Cannot compare tz-naive and tz-aware datetime-like objects
,知道如何解决这个问题吗?谢谢!
Timestamp 是一个时区感知对象,而从
datetime.datetime.now()
获得的日期时间对象是时区天真的对象,因为您没有另外指定,因此会出现错误。您应该进行转换,以便它们要么都支持时区,要么都不支持时区。
例如,您可以像这样调用
datetime.datetime.now()
使其具有时区感知能力(将时间戳对象中的时区信息作为参数传递):
datetime.datetime.now(df.created_at[0].tzinfo)