【问题标题】:logical indexing in pandas dataframe with timestamp column and datetime.date-object带有时间戳列和 datetime.date-object 的 pandas 数据帧中的逻辑索引
【发布时间】:2020-07-15 09:20:25
【问题描述】:

我有点失落。我有一个列名为dates 的数据框,如下所示:

>>> dates_df
    product   tile       date
0       L30  34JDN 2019-01-01
1       L30  34JDN 2019-01-10
2       L30  34JDN 2019-01-17
3       L30  34JDN 2019-01-26
4       L30  34JDN 2019-02-02
..      ...    ...        ...
175     L30  34JEP 2019-11-17
176     L30  34JEP 2019-11-26
177     L30  34JEP 2019-12-03
178     L30  34JEP 2019-12-12
179     L30  34JEP 2019-12-28

我还有一个 <class 'datetime.date'> 对象,看起来像这样:

>>> date_np
datetime.date(2019, 1, 1)

当我用dates_df["date"][0] 获得date 列的第一个元素时,它给了我: Timestamp('2019-01-01 00:00:00').

我怎样才能使这个时间戳和我的date_np-object 具有可比性,这样它才能运行

dates_df[dates_df["date"] == date_np],因为目前它给了我一个空数据框。

Empty DataFrame
Columns: [product, tile, date]
Index: []

【问题讨论】:

    标签: python pandas numpy datetime


    【解决方案1】:

    使用Series.dt.date 按标量日期进行比较:

    dates_df[dates_df["date"].dt.date == date_np]
    

    或将标量转换为datetime:

    dates_df[dates_df["date"] == datetime(date_np.year, date_np.month, date_np.day)]
    

    【讨论】:

      猜你喜欢
      • 2015-12-28
      • 1970-01-01
      • 2014-12-09
      • 2014-08-09
      • 2014-09-22
      • 2020-05-26
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多