【问题标题】:Python extract week number group by ID and week of year from datePython从日期开始按ID和一年中的一周提取周数组
【发布时间】:2021-08-18 02:53:20
【问题描述】:

对于每个 ID,我都有一周的日期。我想从第一次约会开始得到Week_NumberWeek_of_Year(星期天是一周的开始)。

+----+------------+-------------+--------------+
| ID | Date_Time  | Week_Number | Week_of_Year |
+----+------------+-------------+--------------+
| 1  | 2020-08-16 | 1           | 34           |
+----+------------+-------------+--------------+
| 1  | 2020-08-23 | 2           | 35           |
+----+------------+-------------+--------------+
| 1  | 2020-08-30 | 3           | 36           |
+----+------------+-------------+--------------+
| 2  | 2020-11-15 | 1           | 47           |
+----+------------+-------------+--------------+
| 2  | 2020-11-22 | 2           | 48           |
+----+------------+-------------+--------------+

我尝试使用strftime。但这不是错误。

获取 Week_of_Year 的代码 - 工作

df['Week_of_Year'] = df['Date_time'].dt.week

获取 Week_Number 的代码 - 不起作用

df['Week_Number']=df.groupby(df.Date_time.dt.strftime('%W'))

【问题讨论】:

    标签: python pandas date datetime


    【解决方案1】:

    尝试使用rank,您可以使用method 进行检查,当出现重复时会产生不同的输出。

    df['Week_Number']=df.groupby('ID')['Week_of_Year'].rank()
    

    【讨论】:

      【解决方案2】:

      你可以试试cumcount():

      df['Week_Number']=df.groupby('ID').cumcount()+1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-14
        • 1970-01-01
        • 1970-01-01
        • 2022-06-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多