为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

人到中年有点甜 2023-05-09 09:46:50
我正在尝试打印一个数据框,其日期时间对应于 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 的所有日期时间都消失?
查看完整描述

3 回答

?
万千封印

TA贡献1891条经验 获得超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()]



查看完整回答
反对 回复 2023-05-09
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

你的问题不清楚。假设我有以下内容;


数据


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 Datetime

0  2020-02-28 23:00:00

1  2020-02-28 22:00:00

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

0  2020-02-28 23:00:00  20-02-28

1  2020-02-28 22:00:00  20-02-28

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

2  2020-02-29 22:00:00  20-02-29


查看完整回答
反对 回复 2023-05-09
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

您可以通过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") ]

我知道这有点冗长,但很容易理解。


希望,您对这个答案有一些帮助:}


查看完整回答
反对 回复 2023-05-09
  • 3 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信