我有一个df,在这里,我希望求和在0到6的范围内.其中超过6的总和将转为0.adj_cumsum列就是我想要的.不过,我用循环搜索并找到了几篇帖子,因为我的帖子更简单,所以我想知道是否有一种不那么复杂或更新的方法.

+----+-------+------+----------+----------------+--------+------------+
|    | month | days | adj_days | adj_days_shift | cumsum | adj_cumsum |
+----+-------+------+----------+----------------+--------+------------+
|  0 | jan   |   31 |        3 |              0 |      0 |          0 |
|  1 | feb   |   28 |        0 |              3 |      3 |          3 |
|  2 | mar   |   31 |        3 |              0 |      3 |          3 |
|  3 | apr   |   30 |        2 |              3 |      6 |          6 |
|  4 | may   |   31 |        3 |              2 |      8 |          1 |
|  5 | jun   |   30 |        2 |              3 |     11 |          4 |
|  6 | jul   |   31 |        3 |              2 |     13 |          6 |
|  7 | aug   |   31 |        3 |              3 |     16 |          2 |
|  8 | sep   |   30 |        2 |              3 |     19 |          5 |
|  9 | oct   |   31 |        3 |              2 |     21 |          0 |
| 10 | nov   |   30 |        2 |              3 |     24 |          3 |
| 11 | dec   |   31 |        3 |              2 |     26 |          5 |
+----+-------+------+----------+----------------+--------+------------+
data = {"month": ['jan','feb','mar','apr',
                 'may','jun','jul','aug',
                 'sep','oct','nov','dec'], 
       "days": [31,28,31,30,31,30,31,31,30,31,30,31]}
df = pd.DataFrame(data)

df['adj_days'] = df['days'] - 28
df['adj_days_shift'] = df['adj_days'].shift(1)
df['cumsum'] = df.adj_days_shift.cumsum()
df.fillna(0, inplace=True)

恳请告知

推荐答案

你要找的是模运算.

使用df['adj_cumsum'] = df['cumsum'].mod(7).

Python相关问答推荐

使用miniconda创建环境的问题

为什么这个带有List输入的简单numba函数这么慢

当独立的网络调用不应该互相阻塞时,'

try 将一行连接到Tensorflow中的矩阵

如何在给定的条件下使numpy数组的计算速度最快?

在pandas中使用group_by,但有条件

python中字符串的条件替换

在单个对象中解析多个Python数据帧

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

启动带有参数的Python NTFS会导致文件路径混乱

基于行条件计算(pandas)

从旋转的DF查询非NaN值

循环浏览每个客户记录,以获取他们来自的第一个/最后一个渠道

Odoo16:模板中使用的docs变量在哪里定义?

如何根据rame中的列值分别分组值

如何求相邻对序列中元素 Select 的最小代价

如何强制向量中的特定元素在Gekko中处于优化解决方案中

如何使用pytest在traceback中找到特定的异常

如何用FFT确定频变幅值

搜索结果未显示.我的URL选项卡显示:http://127.0.0.1:8000/search?";,而不是这个:";http://127.0.0.1:8000/search?q=name";