首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python :使用isocalendar()从Date列提取week#

Python :使用isocalendar()从Date列提取week#
EN

Stack Overflow用户
提问于 2022-05-03 02:34:05
回答 2查看 374关注 0票数 0

我有Date列的1/2/2014 16:00:00格式的数据格式。我使用以下代码将其转换为01-02-2014df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%m-%d-%Y')

我在一个单独的专栏中得到了week#,但是,我收到警告说,.week是不推荐的,应该使用isocalendar().week

问题:

我试图在isocalendar().week列上操作Date,但得到了错误。有人能指出如何使用isocalendar()吗?

EN

回答 2

Stack Overflow用户

发布于 2022-05-03 06:17:22

你应该继续使用pd.to_datetime

代码语言:javascript
运行
复制
df['Week'] = pd.to_datetime(df['Date']).dt.isocalendar().week

如果将Date列格式化为'%d-%m-%Y',则可以指定dayfirst参数。

代码语言:javascript
运行
复制
df['Week'] = pd.to_datetime(df['Date'], dayfirst=True).dt.isocalendar().week

isocalendar().week使用%V strftime参数,您也可以尝试其他

  • %U -一年中的周数(,Sunday,作为一周的第一天)作为零填充十进制数。在第一个星期天之前的新年里,所有的日子都被认为是在第0周。例子:00,01,…、53
  • %W -一年中的周数(,周一,作为一周的第一天)作为十进制数。在第一个星期一之前的新年里,所有的日子都被认为是在第0周。例子:00,01,…、53
  • %V - ISO 8601周为十进制数,星期一为一周的第一天。01周是包含1月4日的一周。例如:01,02,…、53

参考文献:strftime()和strptime()格式代码\ datetime -基本日期和时间类型

代码语言:javascript
运行
复制
df['WeekV'] = pd.to_datetime(df['Date']).dt.strftime('%V')
df['WeekU'] = pd.to_datetime(df['Date']).dt.strftime('%U')
df['WeekW'] = pd.to_datetime(df['Date']).dt.strftime('%W')
票数 0
EN

Stack Overflow用户

发布于 2022-07-22 16:11:03

https://pythontic.com/datetime/datetime/isocalendar

根据ISO标准8601和ISO标准2015,ISO周将周四定为一周中。这意味着新的ISO年最早可以在12月29日开始,也可以在公历的1月4日开始。

国际标准化组织2012历年的第一周始于2011年12月30日,因为该年的第一个星期四是1/3,与公历不太一致

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72094285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档