首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按时间段对数据帧进行排序;datetime64[ns]

按时间段对数据帧进行排序;datetime64[ns]
EN

Stack Overflow用户
提问于 2021-12-01 15:08:52
回答 1查看 166关注 0票数 1

我在总结专栏()时还有一个问题。

我有一个数据框架“新”的日期从5天。“Date”列是datetime64ns类型。我试着按日期过滤数据框架,例如“2021-10-10和2021-10-15之间的所有值”或“2021-10-14之后的所有值”等等。首先:

代码语言:javascript
复制
mask = (new['Date'] > '2021-10-10') & (df['Date'] <= '2021-10-15')

我得到:

代码语言:javascript
复制
TypeError: '<=' not supported between instances of 'date time.date' and 'str'

在发生此错误后,我尝试转换切片,按照建议“您希望使用Strings '2017-07-07‘而索引类型为date time.date。您的切片也应该是这种类型。您可以通过定义开始日期和结束日期来实现这一点,如下所示:

代码语言:javascript
复制
import pandas as pd
startdate = pd. to_datetime("2017-7-7").date()
enddate = pd. to_datetime("2017-7-10").date()
df.loc[startdate:enddate]

(当然,我删除了空间)但现在我得到了

代码语言:javascript
复制
TypeError: '<' not supported between instances of 'int' and 'date time.date'

我只想按不同的时间段对数据帧进行排序和筛选。谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-01 15:23:30

为了确保所有内容都是相同的格式,使用pd.to_datetime()和使用infer_datetime_format=True可以帮助格式化并加快函数的速度:

代码语言:javascript
复制
df['Date'] = pd.to_datetime(df['Date'],infer_datetime_format=True)

df = df[(df['Date'] > pd.to_datetime('2021-10-10')) & (df['Date'] <= pd.to_datetime('2021-10-15'))]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70186618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档