python - 将周特征值更改为日期时间格式
问题描述
我有一个包含“周”功能的数据集。此功能表示周数,范围从 1 到 400,如以下数据框摘录所示:
data
Out[12]:
Store_id SKU_id WEEK Units_Sold QTY PRICE Promotion
0 2 294 298 11 1 2.62 NaN
1 2 294 299 9 1 2.51 NaN
2 2 294 300 6 1 2.49 NaN
3 2 294 301 5 1 2.99 NaN
我现在希望在数据框中添加一个新列,以 MM/DD/YY 格式显示日期。我所拥有的所有信息是第 1 周对应于从 09/14/89 开始的星期日期,而第 400 星期对应于从 05/08/97 开始的星期日期。
所需的输出将是这样的(参考上一个数据帧):
data
Out[12]:
Store_id SKU_id WEEK Units_Sold QTY PRICE Promotion Date
0 2 294 298 11 1 2.62 NaN 05/25/95
1 2 294 299 9 1 2.51 NaN 06/01/95
2 2 294 300 6 1 2.49 NaN 06/08/95
3 2 294 301 5 1 2.99 NaN 06/15/95
任何帮助表示赞赏。谢谢
解决方案
首先创建一个datetime
来表示第零周,然后将每个周偏移量添加到它。
start = pd.to_datetime( '09/14/89', format = '%m/%d/%y' )
df[ 'Date' ] = df[ 'WEEK' ].apply( lambda x: start + pd.DateOffset( weeks = x ) )
如果要创建格式化字符串,可以使用该strftime
函数。
df[ 'date' ] = df[ 'week' ].apply( lambda x: ( start + pd.DateOffset( weeks = x ) ).strftime( '%d/%m/%y' ) )
推荐阅读
- opc-ua - open62541 客户端与 OPC-UA 服务器断开连接
- java - 作业问题。日历约会程序的编写方法有问题
- python - googlemaps distance_matrix 创建结果矩阵
- python - 根据逐行操作添加新的 pandas df 列
- azure-machine-learning-service - Dataset.download() 中超时错误的解决方法
- javascript - Angular 4:错误 TS2300:重复标识符“PropertyKey”
- android - Firebase 实时。填写不同字段的字段
- nextflow - 如何在 nextflow 中打印出表格
- postgresql - 构建例程以在 Postgres 中生成 CREATE TRIGGER 代码
- javascript - 无法从谷歌地图 api 中删除标记