python - 从字符串列创建年份-周列以进行时间序列分析python
问题描述
我想对要聚合为年-周格式的数据运行 VAR(向量自动回归)模型。我的日期与会计周的 iso 日历不匹配(它们是自定义的,由公司使用)
我有以下格式:
PROMO_WEEK
2018-PW-01
2018-PW-02
2018-PW-03
.
.
.
2019-PW-52
我想收到以下被识别为日期的格式
PROMO_WEEK
2018-01
2018-02
2018-03
.
.
.
2019-52
我试过了:
date_id_promo_week_id['PROMO_WEEK'] = pd.to_datetime(date_id_promo_week_id['PROMO_WEEK'], format = '%y-PW-%W')
但它给出了错误,我找不到该问题的具体解决方案。感谢帮助。
解决方案
如评论中所述,您不能同时拥有两者。它要么datetime
是正确的格式,要么string
是您预期的输出。
还有一个问题是它也%W
需要一个 day 值,所以我们人为地添加它:
选项1:作为datetime
:
df['new_col'] = pd.to_datetime(df['PROMO_WEEK'].str.replace('-PW', '')+'0', format='%Y-%W%w')
PROMO_WEEK new_col
0 2018-PW-01 2018-01-07
1 2018-PW-02 2018-01-14
2 2018-PW-03 2018-01-21
选项 2: as string
,采用预期格式:
df['new_col'] = pd.to_datetime(
df['PROMO_WEEK'].str.replace('-PW', '')+'0', format='%Y-%W%w').dt.strftime('%Y-%W')
PROMO_WEEK new_col
0 2018-PW-01 2018-01
1 2018-PW-02 2018-02
2 2018-PW-03 2018-03
推荐阅读
- java - 使用特定区域设置/国家/地区的可读类型格式化日期
- html - 锚点在不同页面上的行为不同
- java - 基于查询参数动态改变Zuul中路由的url
- shell - lftp 将本地内容目录镜像到远程
- java - 向 C++ Java Enum 模拟器添加 c++17 constexpr 和其他改进
- pyspark - 如何根据另一个中的唯一记录或值为未知的 pyspark 数据框中选择记录
- python - 如何正确实施反向传播
- powershell - 是否有可以检索 Azure Key Vaults 证书到期日期的 PS 命令/脚本?
- python - 创建一个“while still child marker loop”etree Python
- angular7 - 无法在我的 Angular7 项目中使用令牌刷新