python - 动态日期范围数据切片

标签 python datetime

我正在尝试在 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)]

无论哪种方式,您都需要将 startend 与日期时间数据类型进行比较。

关于python - 动态日期范围数据切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54096865/

相关文章:

python - QTableWidget 当前选择改变信号

python - 在 scikit learn 的交叉验证中使用混淆矩阵作为评分指标

python - Kivy:编译为单个可执行文件

python - 如何使用自定义 CTC 层正确保存和加载模型(Keras 示例)

python - 将对象转换为日期时间时出现 pandas 错误

java - 为什么 Java 的 Date.after() 在日期实际上更早时返回 'true'?

javascript - 差异时区浏览器和 Java

python - 插入失败 "OperationalError: no such column"

java - 将日期转换为字符串时出错

datetime - SAS 日期时间格式/信息 - 自 Unix 纪元以来的毫秒数