python - 考虑到去年的第一天,今年的第一周
问题描述
我有以下df:
time_series date sales
store_0090_item_85261507 1/2020 1,0
store_0090_item_85261501 2/2020 0,0
store_0090_item_85261500 3/2020 6,0
成为“日期”=周/年。所以,我尝试使用以下代码:
df['date'] = df['date'].apply(lambda x: datetime.strptime(x + '/0', "%U/%Y/%w"))
但是,返回这个 df:
time_series date sales
store_0090_item_85261507 2020-01-05 1,0
store_0090_item_85261501 2020-01-12 0,0
store_0090_item_85261500 2020-01-19 6,0
但是,2020 年第一周的第一天是 2019-12-29,以星期日为第一天。我怎么能有 2020 年第一周的第一天 2020-12-29 而不是 2020-01-05?
解决方案
import pandas as pd
date = pd.Series(["1/2020", "2/2020", "3/2020"])
pd.to_datetime(date+"/1", format="%V/%G/%u")
0 2019-12-30
1 2020-01-06
2 2020-01-13
dtype: datetime64[ns]
如果一周应该从星期日开始,您也可以移动一天:
pd.to_datetime(date+"/1", format="%V/%G/%u") - pd.Timedelta('1d')
0 2019-12-29
1 2020-01-05
2 2020-01-12
dtype: datetime64[ns]
推荐阅读
- javascript - 用于查询更新的 Firestore 文档 ID
- javascript - 在 Laravel 中使用 AJAX 填充 Selectize optgroup 列
- c# - Roslyn Analyzer 标记属性的返回类型
- python - 使用 Selenium 和 python 进行抓取
- path - C++ Builder链接和使用外部库?
- c++ - Qt SQL LIKE 语句返回错误
- vue.js - 让我的数据出现在总线上
- angular - Angular 5 - 如何在 http 调用中链接 observables?
- wordpress - 清除重写规则wordpress
- json - 从 .Net Core 2.1 Web API 中的 JSON DateTime 响应中删除时间组件