如何按python pandas中的值范围列表进行分组

Sai*_*esh 2 python pandas

我有以下数据框

name,value
a,100
b,200
c,150
d,300
e,400
f,200
g,100
Run Code Online (Sandbox Code Playgroud)

我有范围列表,例如 [0-100,100-200,超过 200]

基于此,我必须计算上面数据框中的记录数。

我需要像这样的输出

category,count
0-100,2
100-200,3
mor than 200,3
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 8

使用groupby+ cut

bins = [-1, 100, 200, np.inf]
labels=['0-100','100-200','more than 200']
df=df.groupby(pd.cut(df['value'], bins=bins, labels=labels)).size().reset_index(name='count')
print (df)
           value  count
0          0-100      2
1        100-200      3
2  more than 200      2
Run Code Online (Sandbox Code Playgroud)

  • 使用 df=df.groupby(pd.cut(df['value'], bins=bins, labels=labels))['value'].sum().reset_index(name='sum')` (2认同)