python - Pandas:生成时间序列日期时间特征
问题描述
我有一个date
作为日期时间的 DF,范围从 2013 年 1 月到 2015 年 12 月。我想创建一个时间序列特征,表明每个月都有一个date_block_num
,每个月增加一个。
例如,2013 年 1 月是0
,2013 年 2 月是1
,...,2013 年 12 月是11
,2014 年 1 月是12
,2014 年 2 月是13
等等。
我可以使用简单iterrows()
的方法来做到这一点,但我想知道是否有更好的方法?
解决方案
如果您的数据有所有月份,您可以使用factorize
:
DF['date'].dt.to_period('M').sort_values().factorize()
或者,您可以尝试一些数学运算:
years = DF['date'].dt.year
months = DF['date'].dt.month
DF['date_block'] = (years*12 + months) - 2013*12
推荐阅读
- ios - 使用 URLSession 从 url 下载 jpg 图像
- angular - 如何处理(不修复!) Ionic Framework 中的 CORS 异常?
- gitlab - 在 Gitlab Prometheus 集成中添加自定义指标
- javascript - 在将 react-router 5 与 redux 7 一起使用时,react-router在转到新路由后不会重置状态
- visual-studio - Clang tidy 不使用 Visual Studio
- amazon-rds - 无法将 RDS 连接到 Google 数据洞察
- asp.net-core-mvc - 我可以注册用户,但无法使用相同的凭据再次登录
- angular - 将值传递给 ngb 模态角度
- html - 为什么 Jquery 不给出
单击锚点时折叠的类? - node.js - 使用 express 从网站获取 html 返回无效的标头值 char