【问题标题】:Filter a dataframe based on today's date (On or before today) in pandas根据 pandas 中的今天日期(今天或之前)过滤数据框
【发布时间】:2020-05-12 00:46:53
【问题描述】:

我有一个如下图所示的数据框

Unit_ID    Added_Date                   Status         
105        2019-10-02 08:14:16          Rented
106        2020-10-21 07:19:13          Rented
109        2020-01-02 07:18:19          Rented
108        2020-06-01 04:15:28          Vacant

从上述数据中,我想在“Added_Date”列中过滤当天或之前的数据。

预期输出:

Unit_ID    Added_Date                   Status         
105        2019-10-02 08:14:16          Rented
109        2020-01-02 07:18:19          Rented

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案1】:

    你可以这样做

    from datetime import datetime
    
    # Make sure your date column is a date an not a string
    df['Added_Date'] = pd.to_datetime(df['Added_Date'])
    # Compare with today's date
    df.loc[df['Added_Date'] > pd.Timestamp(datetime.now()), 'Added_Date']
    

    哪个输出:

    1   2020-10-21 07:19:13
    3   2020-06-01 04:15:28
    Name: Added_Date, dtype: datetime64[ns]
    

    pd.to_datetime() 和 pd.Timestamp() 确保日期格式相同,并且可以与标准 pandas 运算符进行比较。

    【讨论】:

    • 我想要完整的数据框。我可以用这个吗? df[df['Added_Date'] > pd.Timestamp(datetime.now())]
    • 宁可:df.loc[df['Added_Date'] > pd.Timestamp(datetime.now()), 'Added_Date'].to_frame()
    猜你喜欢
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多