简体   繁体   English

pandas dataframe 中的逻辑索引,带有时间戳列和 datetime.date-object

[英]logical indexing in pandas dataframe with timestamp column and datetime.date-object

I'm a little lost.我有点失落。 I have a dataframe with a column names dates , that looks like this:我有一个列名为dates的 dataframe ,如下所示:

>>> 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

I also have a single object of <class 'datetime.date'> that looks like this:我还有一个<class 'datetime.date'>的 object,如下所示:

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

When I get the first element of the column date with dates_df["date"][0] it gives me: Timestamp('2019-01-01 00:00:00') .当我使用 dates_df[" date dates_df["date"][0]获得日期列的第一个元素时,它给了我: Timestamp('2019-01-01 00:00:00')

How can I make this timestamp and my date_np -object comparable so that this would run我怎样才能使这个时间戳和我的date_np具有可比性,以便它可以运行

dates_df[dates_df["date"] == date_np] , because at the moment it gives me back an empty dataframe. dates_df[dates_df["date"] == date_np] ,因为目前它给了我一个空的 dataframe。

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

Use Series.dt.date for compare by scalar dates:使用Series.dt.date按标量日期进行比较:

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

Or convert scalar to datetime :或将标量转换为datetime

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM