猿问

我想摆脱具有特定日期的数据框的一部分

我正在尝试打印一个数据框,其日期时间对应于 Jupyter 中省略的 2/29/2020 日期。当我在下面链接的图片的顶部单元格中输入条件语句并将数据帧输出到底部单元格时,所有日期时间都在 2/28/2020 22:00:00 之后,只有数据帧行对应于第一个一天中的小时 (2/29/2020 00:00:00) 被省略,而不是与 2/29/2020 01:00:00 -> 2/29/2020 23:00:00 日期时间对应的数据框行我想了。如何更改顶部单元格中的条件语句,使 2/29/2020 的所有日期时间都消失?


人到中年有点甜
浏览 118回答 3
3回答

万千封印

要省略 2/29/2020 的所有日期时间,您需要先将日期时间转换为比较中的日期。改变:post_retrofit[post_retrofit['Unit Datetime'] != date(2020, 2, 29)]到:post_retrofit[post_retrofit['Unit Datetime'].dt.date != datetime(2020, 2, 29).date()]

凤凰求蛊

你的问题不清楚。假设我有以下内容;数据post_retrofit_without_2_29=pd.DataFrame({'Unit Datetime':['2020-02-28 23:00:00','2020-02-28 22:00:00','2020-02-29 22:00:00']})print(post_retrofit_without_2_29) Unit Datetime0  2020-02-28 23:00:001  2020-02-28 22:00:002  2020-02-29 22:00:00解决方案要按日期过滤掉,我必须按如下方式将日期时间强制为日期;post_retrofit_without_2_29['Unit Date']=pd.to_datetime(post_retrofit_without_2_29['Unit Datetime']).dt.strftime("%y-%m-%d")print(post_retrofit_without_2_29)  Unit Datetime     Unit Date0  2020-02-28 23:00:00  20-02-281  2020-02-28 22:00:00  20-02-282  2020-02-29 22:00:00  20-02-29 筛选post_retrofit_without_2_29[post_retrofit_without_2_29['Unit Date']>'20-02-28'] Unit Datetime Unit Date2  2020-02-29 22:00:00  20-02-29

慕尼黑5688855

您可以通过pivot_table()使用datesas 索引创建一个来轻松地做到这一点。因此,时间不会有问题。post_retrofit_without_2_29_pivot = pd.pivot_table(data=post_retrofit_without_2_29 , index= post_retrofit_without_2_29['Unit Datetime'])post_retrofit_without_2_29_pivot.loc[hourly_pivot.index != pd.to_datetime("2020-02-29") ]我知道这有点冗长,但很容易理解。希望,您对这个答案有一些帮助:}
随时随地看视频慕课网APP

相关分类

Python
我要回答