【发布时间】:2018-03-09 05:48:29
【问题描述】:
我一直在尝试过滤特定日期的数据框,尽管日期存在于数据框中,但它没有返回任何结果
基于查询的数据框中的数据
df[df['Date'] > '2017-03-20']
返回这个结果
StaffID Date
90047 2017-03-20 19:00:00
90049 2017-03-20 19:00:00
90049 2017-03-27 19:00:00
虽然当我运行这个查询时
df[df['Date'] == '2017-03-20']
或
df.loc[df['Date'] == '2017-03-20']
它根本没有返回任何结果,只是一个空的数据框
StaffID Date
我的数据框列类型是
StaffID int64
Date datetime64[ns]
我已经通过比较数据框日期与字符串以及将 字符串日期 转换为 datetime64[ns] 来尝试上述查询,结果仍然相同,请提供帮助将不胜感激
【问题讨论】:
-
在过滤之前添加
df.Date=df.Date.dt.date -
还是一样的结果
-
@Waqar 因为 '2017-03-20' 被视为 '2017-03-20 00:00:00' 这显然小于 '19:00:00',所以你需要如温所说,过滤日期。
-
结果还是一样@Wen
-
伟大的 nvm 必须将匹配的日期转换为 numpy.datetime64 或 datetime.datetime.date,谢谢!
标签: python pandas numpy dataframe