我有Date
列的1/2/2014 16:00:00
格式的数据格式。我使用以下代码将其转换为01-02-2014
:df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%m-%d-%Y')
我在一个单独的专栏中得到了week#,但是,我收到警告说,.week
是不推荐的,应该使用isocalendar().week
。
问题:
我试图在isocalendar().week
列上操作Date
,但得到了错误。有人能指出如何使用isocalendar()吗?
发布于 2022-05-03 06:17:22
你应该继续使用pd.to_datetime
df['Week'] = pd.to_datetime(df['Date']).dt.isocalendar().week
如果将Date
列格式化为'%d-%m-%Y'
,则可以指定dayfirst
参数。
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 -基本日期和时间类型
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')
发布于 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,与公历不太一致
https://stackoverflow.com/questions/72094285
复制相似问题