【问题标题】:Create bi-weekly and monthly labels with week numbers in pandas在 pandas 中创建带有周数的双周和每月标签
【发布时间】:2021-11-17 21:53:03
【问题描述】:

我有一个包含利润值、ID 和周值的数据框。有点像这样

ID Week Profit
A 1 2
A 2 2
A 3 0
A 4 0

我想创建两个名为“双周”和“每月”的新列,因此第 1 周将标记为 2,第 2 周也将标记为 2,但第 3 周将标记为 4,第 4 周将标记为标记为 4,它们都将标记为第 1 个月,因此我可以根据需要对每周、每两周或每月利润进行分组。现在我已经创建了两个可以工作的函数,但是几周将长达一年(52 周),所以我想知道是否有更有效的方法。下面是我的双周功能。

def biweek(prof_calc):
    if (prof_calc['week']==2):
        return 2
    elif (prof_calc['week']==3):
        return 2
    elif (prof_calc['week']==4):
        return 4
    elif (prof_calc['week']==5):
        return 4
    elif (prof_calc['week']==6):
        return 6
    elif (prof_calc['week']==7):
        return 6
    elif (prof_calc['week']==8):
        return 8
    elif (prof_calc['week']==9):
        return 8
    elif (prof_calc['week']==10):
        return 10
    elif (prof_calc['week']==11):
        return 10
    
prof_calc['BiWeek'] = prof_calc.apply(biweek, axis=1)

【问题讨论】:

    标签: python pandas week-number


    【解决方案1】:

    IIUC,你可以试试:

    df["Biweekly"] = (df["Week"]-1)//2+1
    df["Monthly"] = (df["Week"]-1)//4+1
    
    >>> df
       ID  Week  Profit  Biweekly  Monthly
    0   A     1      42         1        1
    1   A     2      69         1        1
    2   A     3      53         2        1
    3   A     4      63         2        1
    4   A     5      56         3        2
    5   A     6      57         3        2
    6   A     7      86         4        2
    7   A     8      23         4        2
    8   A     9      35         5        3
    9   A    10      10         5        3
    10  A    11      25         6        3
    11  A    12      21         6        3
    12  A    13      39         7        4
    13  A    14      82         7        4
    14  A    15      76         8        4
    15  A    16      20         8        4
    16  A    17      97         9        5
    17  A    18      67         9        5
    18  A    19      21        10        5
    19  A    20      22        10        5
    20  A    21      88        11        6
    21  A    22      67        11        6
    22  A    23      33        12        6
    23  A    24      38        12        6
    24  A    25       8        13        7
    25  A    26      67        13        7
    26  A    27      16        14        7
    27  A    28      49        14        7
    28  A    29       3        15        8
    29  A    30      17        15        8
    30  A    31      79        16        8
    31  A    32      19        16        8
    32  A    33      21        17        9
    33  A    34       9        17        9
    34  A    35      56        18        9
    35  A    36      83        18        9
    36  A    37       1        19       10
    37  A    38      53        19       10
    38  A    39      66        20       10
    39  A    40      55        20       10
    40  A    41      85        21       11
    41  A    42      90        21       11
    42  A    43      34        22       11
    43  A    44       3        22       11
    44  A    45       9        23       12
    45  A    46      28        23       12
    46  A    47      58        24       12
    47  A    48      14        24       12
    48  A    49      42        25       13
    49  A    50      69        25       13
    50  A    51      76        26       13
    51  A    52      49        26       13
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 2018-06-07
      • 2021-01-03
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多