【问题标题】:How to specify dt.week to use north american week number in dataframe pandas?如何指定 dt.week 在数据框 pandas 中使用北美周数?
【发布时间】:2020-08-24 20:55:18
【问题描述】:

如何指定 dt.week 以使用北美周数?

2019 年日历:

例如:日期 -> 01.01.2020 是 2020 年的第 1 周 / 31.12.2019 是 2019 年的第 53 周

df['Week'] = df['Induction Date'].dt.week.astype(str).str.zfill(2)

结果:

             SENDER_NAME     Induction Date       InductionPlant   Week
0          b'XXXXXXXXXXXX'     2020-01-03          b'XXXXXXXXXX'     01
8910353    b'XXXXXXXXXXXX'     2019-12-31         b'XXXXXXXXXXX'     01

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

你可以这样做:

df['Date'] = pd.to_datetime(df['Date'])
df['Week'] = df['Date'].dt.strftime('%U').astype(np.int) + 1

输出

   SENDER_NAME        Induction       Date  InductionPlant  Week
0            0  b'XXXXXXXXXXXX' 2020-01-03   b'XXXXXXXXXX'     1
1      8910353  b'XXXXXXXXXXXX' 2019-12-31  b'XXXXXXXXXXX'    53

【讨论】:

    【解决方案2】:

    应该这样做:

    # Add this if "Induction Date" is not yet in pandas datetime format
    # df["Induction Date"] = pd.to_datetime(df["Induction Date"])
    
    df['Week'] = df['Induction Date'].dt.to_period('W-SAT').dt.week.astype(str).str.zfill(2)
    

    使用.dt.to_period('W-SAT'),您可以指定一周的结束时间,在本例中为星期六。

    结果如下所示:

    +------------------+--------+
    | Induction Date   |   Week |
    |------------------+--------|
    | 2019-12-27       |     52 |
    | 2019-12-28       |     52 |
    | 2019-12-29       |     01 |
    | 2019-12-30       |     01 |
    | 2019-12-31       |     01 |
    | 2020-01-01       |     01 |
    | 2020-01-02       |     01 |
    | 2020-01-03       |     01 |
    | 2020-01-04       |     01 |
    | 2020-01-05       |     02 |
    +------------------+--------+
    

    【讨论】:

    • 31.12.2019 应该是 2019 年的第 53 周
    • 您的屏幕截图与此矛盾,表明 31.12.2019 是第 1 周。如果 31.12.2019 应该是第 53 周,@NYC Coder 的解决方案有效
    • 抱歉,我只是想展示一个日历示例
    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 2020-12-12
    • 2016-06-11
    • 2021-01-31
    • 2016-11-04
    • 2020-08-04
    • 1970-01-01
    • 2023-01-28
    相关资源
    最近更新 更多