数据可视化画饼图绘制三个年龄段的占比分布 在pandas的cut函数出现了错误,怎么搞
【相关推荐】
score_list=np.random.randint(25,100,size=20)
out:
array([85, 33, 80, 58, 27, 71, 83, 73, 51, 25, 55, 31, 34, 63, 61, 40, 87,
67, 50, 81])
# 定义一个分类的区间标准(分成四组:(0-59],(59-70],(70-80],(80-100])
bins=[0,59,70,80,100]
# 分箱处理
score_cat=pd.cut(score_list,bins)
# 分别位于哪个组的索引
score_cat.codes
array([3, 0, 2, 0, 0, 2, 3, 2, 0, 0, 0, 0, 0, 1, 1, 0, 3, 1, 0, 3],
dtype=int8)
# 统计出各个阶段的人数
pd.value_counts(score_cat)
(0, 59] 10
(80, 100] 4
(70, 80] 3
(59, 70] 3
dtype: int64
# 给每个区间命名
group_names=['D','C','B','A']
a=pd.cut(score_list,bins,labels=group_names)
pd.value_counts(a)
D 10
A 4
B 3
C 3
dtype: int64
# 对于DataFrame处理是一样的
df=DataFrame()
df['score']=score_list
df['student']=[pd.util.testing.rands(3) for i in range(20)] # 随机生成3个字符组成姓名
df['Categories']=pd.cut(df['score'],bins,labels=['D','C','B','A']) # 添加成绩等级
df.head()
score student Categories
0 85 Wg6 A
1 33 rsD D
2 80 VFH B
3 58 2q2 D
4 27 hXZ D