python - 如何使用python的数据表按日期过滤
问题描述
我有以下数据表,我想按大于“2019-01-01”的日期对其进行过滤。问题是日期是字符串。
dt_dates = dt.Frame({"days_date": ['2019-01-01','2019-01-02','2019-01-03']})
这是我最好的尝试。
dt_dates[f.days_date > datetime.strptime(f.days_date, "2019-01-01")]
这将返回错误
TypeError: strptime() 参数 1 必须是 str,而不是 Expr
在python的数据表中过滤日期的最佳方法是什么?
参考
解决方案
您的日期时间语法不正确,用于将字符串转换为日期时间。
您正在寻找的是:
dt_dates[f.days_date > datetime.strptime(f.days_date, "%Y-%m-%d")]
strptime 的第二个论点是日期格式。
但是,让我们退后一步,因为这不是正确的方法。
首先,我们应该将 Frame 中的所有日期转换为日期时间。老实说,我从未使用过数据表,但语法看起来与 panda 的 Dataframe 极为相似。
在数据框中,我们可以执行以下操作:
df_date = df_date['days_date'].apply(lambda x: datetime.strptime(x, '%Y-%m'%d))
这将遍历列为“dates_date”的每一行,并将每个字符串转换为日期时间。
从那里,我们可以使用过滤器来获取相关行:
df_date = df_date[df_date['days_date'] > datetime.strptime("2019-01-01", "%Y-%m-%d")]
推荐阅读
- ruby - 红宝石:未定义的方法排除?
- python - 如何在python中查找数字中的小数位数也计算尾随零
- vue.js - 如何继承Vue Json
- django - 为灯具转换 csv
- digital-ocean - 重定向错误的 URL/路径 DigitalOcean Spaces
- git - 带有 GitFlow 分支的 Azure DevOps 构建和发布管道
- java - metaData.getPrimaryKeys() 在 key 为单个时返回四个相同的记录
- angular - 在 URL 中使用变量时出现 404 错误:模型 [App\Models\Seeker] 没有查询结果
- dll - 从命令行运行 DLL 文件以弹出消息框
- sql - 如何在访问文件中查找丢失的数字