簡體   English   中英

在pandas數據框中保持運行的計數數量大於閾值

[英]Keep running count of number of values greater than threshold in pandas dataframe

在以下數據框中:

    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個解決方案-將count重置為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

要獲取行數,可以執行以下操作:

your_counter = len(your_df[your_df['va'] > 30])

(“ your_df”顯然應該替換為數據框的名稱)

代碼正在執行的操作是創建一個新的數據框,其中僅包含“ va”值超過30的行。然后,“ len”函數將對行數進行計數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM