我正在尝试在 Jupyter Notebook 上为从 SQL 数据库中提取的数据集创建每周报告。我需要根据数据集中的日期范围对数据进行切片。
正在提取从当前日期算起的过去 60 天的数据,但我需要提取中间 30 天的数据(基于数据完整性/其他)。为此,我使用了以下代码
from datetime import datetime, timedelta
today = datetime.now().date()
start = today - timedelta(days=10)
end = start- timedelta(days=30)
Df5= Df5.loc[start : end]
代码的最后一部分给出以下错误:
TypeError: '<' not supported between instances of 'int' and 'datetime.date'
这是对数据进行切片的最有效方法吗?我是Python新手,这是第一次处理现实世界的数据,所以任何建议将不胜感激。谢谢!
最佳答案
仅当 Df5
的索引是 DatetimeIndex
时,您的 .loc
语句才有效。从错误来看,您的索引似乎是 int
类型。
如果 Df5
中有一个日期时间列,那么您需要将其设置为索引:
Df5.set_index("name_of_date_column", inplace=True)
,然后使用您的 .loc
语句。
或者,您可以更改 .loc
语句以使用带有日期的列:
Df5.loc[Df5["name_of_date_column"]. Between(left=start, right=end)]
无论哪种方式,您都需要将 start
和 end
与日期时间数据类型进行比较。
关于python - 动态日期范围数据切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54096865/