猿问

将时间戳与日期时间进行比较

我有一个来自数据帧和日期时间对象的时间戳,我想比较它们以在数据帧中进行选择。我的数据如下:


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,知道如何解决这个问题吗?谢谢!


慕森王
浏览 161回答 2
2回答

白猪掌柜的

时间戳是一个时区感知对象,而您从中获取的日期时间对象datetime.datetime.now()是时区天真的对象,因为您没有另外指定,因此会出现错误。您应该进行转换,以便它们要么都支持时区,要么都不支持时区。例如,您可以datetime.datetime.now()像这样调用以使其具有时区意识(从时间戳对象传递时区信息作为参数):datetime.datetime.now(df.created_at[0].tzinfo)

慕村225694

df[df.created.to_pydatetime() > datetime.datetime.now()]
随时随地看视频慕课网APP

相关分类

Python
我要回答