python - 持续计算 pandas 数据框中大于阈值的值数量

标签 python pandas

在下面的数据框中:

    va
0   35
1   12
2   24
3   25
4   26
5   19
6   14
7   22
8   35
9   35
10  29
11  13
12  20
13  10
14  10
15  23
16  11
17  30
18  26
19  32
20  11

我想保留 va 列值超过 30 的行数的运行计数。我正在考虑使用 value_counts 但这似乎并不可行右

最佳答案

有 2 种解决方案 - 将计数重置为 new 列,另一种解决方案不重置为 new1:

a = df['va'].gt(30)
b = a.cumsum()
df['new'] = b-b.mask(a).ffill().fillna(0).astype(int)
df['new1'] = b.where(a, 0)
print (df)
    va  new  new1
0   35    1     1
1   12    0     0
2   24    0     0
3   25    0     0
4   26    0     0
5   19    0     0
6   14    0     0
7   22    0     0
8   35    1     2
9   35    2     3
10  29    0     0
11  13    0     0
12  20    0     0
13  10    0     0
14  10    0     0
15  23    0     0
16  11    0     0
17  30    0     0
18  26    0     0
19  32    1     4
20  11    0     0

关于python - 持续计算 pandas 数据框中大于阈值的值数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52922642/

相关文章:

python - 使用strptime转换特定时间格式

python - 如果某个值位于某个区间之间,请选择另一列中同一行的值

python - Pandas :比较 2 个数据帧而不进行迭代

Python - Pandas 索引和选择

python - 在 Python 中使用正则表达式来排除字符串

datetime - 将 Pandas DataFrame 和 xaxis 绘制为 Timestamp 生成空图

python - 我可以在 OS X 上安装 Python 2.7.1 64 位的同时安装现有的 32 位吗?

python - 如何使用 webapp2 添加 auth_id?

python - 在 Python 中对由一个列表索引的列表列表进行排序的更简单方法

python - 从 Bokeh 图形中删除填充或边距