list0 = [] # 0元以内
list1 = [] # 1元以内
list2 = [] # 2-5元
list3 = [] # 6-10元
list4 = [] # 10-100元
list5 = [] # 100元以上 for u in users_list:
if (u['balance']/100) <= 0:
list0.append(u) if 0 < (u['balance']/100) <= 1:
list1.append(u) if 2 < (u['balance']/100) <= 5:
list2.append(u) if 6 < (u['balance']/100) <= 10:
list3.append(u) if 10 < (u['balance']/100) <= 100:
list4.append(u) if 100 < (u['balance']/100):
list5.append(u) print(str(len(list0)),str(len(list1)),str(len(list2))....)有没有更好的方法在不创建空列表对其进行分类并统计每个条件的总数
1 回答
波斯汪
TA贡献1811条经验 获得超4个赞
用pandas的cut函数
举个例子:
import pandas as pd import numpy as np a = [-100, 100, 500, 1000, 9001, 10001] bins = [-np.inf, 0, 1, 5, 10, 100, np.inf] res = pd.Series(a).groupby( pd.cut(np.array(a)/100, bins=bins, labels=[ '0元以内', '1元以内', '2-5元', '6-10元', '10-100元', '100元以上' ], ) ).count() print(res)
结果:
0元以内 1 1元以内 1 2-5元 1 6-10元 1 10-100元 1 100元以上 1 dtype: int64
添加回答
举报
0/150
提交
取消