【问题标题】:Two different type date compare, Python 3.6两种不同类型的日期比较,Python 3.6
【发布时间】:2019-03-04 13:35:20
【问题描述】:

我想比较以下两个日期,

publicationDate contains Timestamp('2018-05-25 00:00:00')

Type: pandas._libs.tslibs.timestamps.Timestamp

从 API 结果获取的publicationDate:

publicationDate = pd.to_datetime(Json_Data_1['publicationDate'])

datetime.date.today() returns datetime.date(2019, 3, 4)

Type: datetime.date


if 'W' in Frequency:
    while(publicationDate < datetime.date.today()):
        publicationDate = publicationDate + relativedelta(weeks=+1)

错误:

TypeError: Cannot compare type 'Timestamp' with type 'date'

【问题讨论】:

    标签: python python-3.x pandas datetime dataframe


    【解决方案1】:

    这是一个诚实的错误。

    您似乎正在尝试比较相似的事物,但实际上并非如此。 一种是TS,包含时间信息,另一种是数据对象,只包含日期信息。

    datetime.date.today() returns datetime.date(2019, 3, 4)

    如果您将代码更改为:

    if 'W' in Frequency:
        while(publicationDate < pd.to_datetime(datetime.date.today())):
            publicationDate = publicationDate + relativedelta(weeks=+1)
    

    或到:

    if 'W' in Frequency:
        while(publicationDate.date() < datetime.date.today()):
            publicationDate = publicationDate + relativedelta(weeks=+1)
    

    应该可以了!

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      使用 to_pydatetime() 将 Timestamp 转换为 python 日期时间

      【讨论】:

        猜你喜欢
        • 2017-11-06
        • 2018-04-24
        • 1970-01-01
        • 2019-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多