分组熊猫自定义范围?

时间:2018-10-29 03:04:46

标签: pandas pandas-groupby

我有一个DataFrame:

 ID       Value
  1           1  
  2           2
  3           1    
  4           1
  5           2
  6           3
  7           4
  8           5  
  9          10  
 10          15

我想按我的值分组并计算ID,该ID在自定义范围内:<= 2、3-9,> = 10

结果如下:

 Value      ID
 <=2         5
 3-9         3
 >= 10       2

2 个答案:

答案 0 :(得分:3)

使用pd.cutgroupby

import numpy as np

labels = ['<=2', '3-9', '>=10']
bins = [0,2,9, np.inf]

df.groupby(pd.cut(df['Value'], bins, labels=labels)).size().to_frame('ID')

# Output

         ID
Value   
 <= 2     5
  3-9     3
 >=10     2

答案 1 :(得分:1)

我认为您不需要分组。

labels = ['<=2', '3-9', '>=10']
bins = [0,2,9, np.inf]
pd.cut(df['Value'],bins=bins,labels=labels).value_counts().reset_index()
#out[]
index   Value
<=2     5
3-9     3
>=10    2