【问题标题】:Not able to compare pandas datetime column to datetime fetch from DB无法将 pandas 日期时间列与从数据库中获取的日期时间进行比较
【发布时间】:2021-07-13 11:20:36
【问题描述】:

我正在尝试将 pandas 日期时间与从数据库中获取的日期时间进行比较

pandas 日期时间列

           review_updatedAt
0 2021-01-01 00:31:14+00:00
1 2021-01-01 01:55:31+00:00
2 2021-01-01 02:43:28+00:00
3 2021-01-01 07:23:11+00:00
4 2021-01-01 05:38:10+00:00

还有从数据库中获取日期时间值

result = '2021-01-01 04:51:53'

我想过滤大于result的Dataframe值

我的努力:

df['review_updatedAt'] = pd.to_datetime(df['review_updatedAt'], format='%Y-%m-%d %H:%M:%S', exact=False)

df = df[df['review_updatedAt'] > result]

我遇到了一个错误

TypeError:dtype=datetime64[ns, UTC] 和 datetime 之间的比较无效

我还提到了现有的问题 Comparison between datetime and datetime64[ns] in pandas

【问题讨论】:

  • 问题是您将感知日期时间(UTC;由“+00:00”表示)与天真的日期时间(“2021-01-01 04:51:53”)进行比较。你也可以简单地让result 知道,result = pd.Timestamp('2021-01-01 04:51:53Z')

标签: python pandas datetime


【解决方案1】:

您的代码对我来说非常好用,但简单地复制您的代码result 对我来说是一个字符串而不是日期时间。 由于您的 TypeError 暗示它是您的日期时间,也许这种清理就足够了:

result = pd.Timestamp(result,tz='UTC')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 2014-05-03
    • 2023-03-07
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    相关资源
    最近更新 更多