我需要一个 df 列,用于按周对其进行分组。
问题是 Tableau 中的所有报告都是使用以下周格式构建的:2019-01-01
就像是重复使用一周中的第一天周一至周日。
数据:
cw = pd.DataFrame({ "lead_date" : [2019-01-01 00:02:16, 2018-08-01 00:02:16 , 2017-07-07 00:02:16, 2015-12-01 00:02:16, 2016-09-01 00:02:16] ,
"name": ["aa","bb","cc", "dd", "EE"] )}
我的代码:
# extracting
cw["week"] = cw["lead_date"].apply(lambda df: df.strftime("%W") )
cw["month"] = cw["lead_date"].apply(lambda df: df.strftime("%m") )
cw["year"] = cw["lead_date"].apply(lambda df: df.strftime("%Y") )
输出:
lead_date year month week
2019-01-01 00:02:16, 2019 , 01 , 00
-
-
-
etc..
期望的输出:
将星期作为日期格式,而不仅仅是 00 或 01 等。
lead_date year month week
2019-01-01 00:02:16, 2019 , 01 , 2019-01-01
2019-01-15 00:02:16, 2019 , 01 , 2019-01-14
2019-01-25 00:02:16, 2019 , 01 , 2019-01-21
2019-01-28 00:02:16, 2019 , 01 , 2019-01-21
最佳答案
你可以这样做:
from datetime import datetime, timedelta
cw['lead_date'].apply(lambda r: datetime.strptime(r, '%Y-%m-%d') - timedelta(days=datetime.strptime(r, '%Y-%m-%d').weekday()))
这会将每个日期设置为该周的开始日。
关于python - 如何获取 Datetime 的完整日期长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59460608/