![](/img/trans.png)
[英]Count rows where value is between two numbers and group by a different column
[英]Python/Pandas - How to group by two columns and count rows with value from third column between two numbers
我需要將數據框分組為兩列,然后計算第三列中值的出現次數,介於1和20之間。
數據框:
col1 col2 value
a b 1
a b 3
a b 22
a c 0
a c 3
a c 19
結果:
col1 col2 counter
a b 2
a c 2
我的代碼:
counter = data_frame.groupby(['column1', 'column2'])[((data_frame['value'] >= 1) & (data_frame['value'] < 20))].sum()
有任何想法嗎?
您需要首先通過boolean indexing
或query
過濾,然后使用聚合size
進行groupby
:
df = data_frame[(data_frame['value'] >= 1) & (data_frame['value'] < 20)]
df = df.groupby(['col1', 'col2']).size().reset_index(name='counter')
print (df)
col1 col2 counter
0 a b 2
1 a c 2
要么:
df = data_frame.query('value >= 1 & value < 20')
df = df.groupby(['col1', 'col2']).size().reset_index(name='counter')
print (df)
col1 col2 counter
0 a b 2
1 a c 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.