python可视化饼状图

数据可视化画饼图绘制三个年龄段的占比分布 在pandas的cut函数出现了错误,怎么搞

img

【相关推荐】



  • 文章:Python连续数据离散化处理和pandas.cut函数用法 中也许有你想要的答案,请看下吧
  • 除此之外, 这篇博客: Python-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
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^