迭代行并根据条件应用函数

问题描述 投票:0回答:1

我正在学习迭代并在 pandas 中应用函数。我在下面有一个例子。每 4 行应用一个函数(第一行 + 0、第二行 + 0、第三行 = 0、第四行 = 0),依此类推。有执行此操作的链接资源吗?非常感谢。

data = {'DATE': ['2023-12-29', '2023-12-29', '2023-12-29', '2023-12-29','2024-01-31','2024-01-31','2024-01-31','2024-01-31',
                '2024-02-27','2024-02-27','2024-02-27','2024-02-27'],
        'score': [10, 5, 30, 41,12,7,32,43,14,9,34,45]}

df = pd.DataFrame(data=data)


        DATE      Score Result
    0   2023-12-29  10  10
    1   2023-12-29  5   5
    2   2023-12-29  30  0   
    3   2023-12-29  41  0   
    4   2024-01-31  12  12
    5   2024-01-31  7   7
    6   2024-01-31  32  0   
    7   2024-01-31  43  0   
    8   2024-02-27  14  14
    9   2024-02-27  9   9   
    10  2024-02-27  34  0    
    11  2024-02-27  45  0
pandas loops lambda iteration apply
1个回答
0
投票

代码

cond = df.index.to_series().mod(4).isin([2, 3])
df['result'] = df['score'].mask(cond, 0)

df

          DATE  score  result
0   2023-12-29     10      10
1   2023-12-29      5       5
2   2023-12-29      8       0
3   2023-12-29      2       0
4   2023-12-29      7       7
5   2023-12-27     10      10
6   2023-12-27     12       0
7   2023-12-27      7       0
8   2023-12-27      9       9
9   2024-01-31     13      13
10  2024-02-27     14       0
11  2024-02-27      9       0
© www.soinside.com 2019 - 2024. All rights reserved.