【问题标题】:Python: take unique dates in dataframePython:在数据框中获取唯一日期
【发布时间】:2022-01-20 19:48:35
【问题描述】:

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

                       price
Date
2022-01-01 19:20:00    100   
2022-01-01 19:27:00    100
2022-01-02 19:31:00    102

我希望数据框只有唯一的日期:

                       price
Date
2022-01-01 19:20:00    100   
2022-01-02 19:31:00    102

我怎样才能做到这一点?

【问题讨论】:

    标签: python pandas dataframe datetime timestamp


    【解决方案1】:

    你可以简单地使用duplicated:

    # pre-requisite
    df['Date'] = pd.to_datetime(df['Date'])
    
    df[~df['Date'].dt.date.duplicated()]
    

    或者如果使用索引:

    df[~df.index.to_series().dt.date.duplicated().values]
    

    输出:

                     Date  price
    0 2022-01-01 19:20:00    100
    2 2022-01-02 19:31:00    102
    

    【讨论】:

      【解决方案2】:

      您可以使用df.Date.dt.date 从日期时间列中提取日期,使用assign 将其放入新列中,然后仅基于该列使用drop_duplicates。最后,您可能希望删除仅包含日期信息的新创建列。在读取的代码中

      df = (
          df.assign(new_date=lambda df:df.Date.dt.date)
         .drop_duplicates(subset=["new_date"])
         .drop(columns=["new_date"])
      )
      

      【讨论】:

        猜你喜欢
        • 2016-09-01
        • 1970-01-01
        • 2019-04-08
        • 1970-01-01
        • 2020-09-29
        • 1970-01-01
        • 2016-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多