![](/img/trans.png)
[英]Only keep pandas columns where value_count of all values greater than some threshold;
[英]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.