【问题标题】:how to group by list ranges of value in python pandas [duplicate]如何按python pandas中的列表范围分组[重复]
【发布时间】:2018-06-25 03:09:06
【问题描述】:

我有以下数据框

name,value
a,100
b,200
c,150
d,300
e,400
f,200
g,100

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

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

我需要像这样的输出

category,count
0-100,2
100-200,3
mor than 200,3

【问题讨论】:

  • 如果我不在这里作为重复关闭,这些会不断得到回答????

标签: python pandas


【解决方案1】:

使用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

【讨论】:

  • raise ValueError('Bin 标签必须比 'ValueError 小一:Bin 标签必须比 bin 边数少一
  • 我遇到了错误
  • bins = [-1, 1000000, 5000000, 20000000, np.inf] 标签 = ['0-1000000', '1000000-5000000', '5000000-20000000' '超过 20000000'] df = data.groupby(pd.cut(data['amount'], bins=bins, labels=labels)).size().reset_index(name='count')
  • 嗯,在我看来很难找到错误,因为错误不清楚。不客气!
  • 使用df=df.groupby(pd.cut(df['value'], bins=bins, labels=labels))['value'].sum().reset_index(name='sum')
猜你喜欢
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 2021-10-02
  • 2016-08-18
  • 1970-01-01
相关资源
最近更新 更多