我一直在尝试过滤特定日期的数据框,尽管数据框中存在该日期,但未返回任何结果
基于查询的数据框中的数据
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']
它没有返回任何结果,只是一个空的 Dataframe
StaffID Date
我的数据框列类型为
StaffID int64
Date datetime64[ns]
我已经尝试了上述查询,通过比较 Dataframe 日期与字符串,以及通过转换字符串日期到**datetime64[ns]**仍然相同的结果,请任何帮助将不胜感激
4条答案
按热度按时间pvcm50d11#
使用dt.date astype字符串,然后比较,即
输出量:
am46iovg2#
可以进行字符串比较
j8yoct9x3#
我使用的日期是 '2017 -03-20 19:00:00'**这是>'2017 -03-20 00:00:00'**这就是为什么它没有比较它的权利,最好的方法是
以上代码返回
这将只提取日期从我的日期列,并取代旧列有时间
信用:温谁回答我在评论.
zazmityj4#
在数据类型、格式等方面,日期往往有点棘手。这是非常重要的,以确保你是比较苹果苹果。例如,你可以得到
如果你想把它和Pandas约会相提并论,那就没什么好处了。见鬼,你甚至可以像这样把它转换成int
对你一点好处都没有这是因为pandas有自己的pandas.timestamp类,它使用numpy数据类型来表示日期。举例来说:
上面的方法不起作用,因为你是在比较int32和int。在本例中,您将pandas.Series.dt.month返回的int32数据类型与int进行比较。它不会工作,你会得到nada,什么都没有,zip,zilch,鹅蛋。相反,你必须做:
我必须弄清楚,因为我想自动过滤当前的月份和时间量,它花了我想出如何做到这一点只是不敬虔。