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()]
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
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") ]
我知道这有点冗长,但很容易理解。
希望,您对这个答案有一些帮助:}
添加回答
举报