# -*- coding: utf-8 -*-
#1、概念:分布分析,是指根据分析目的,将数据(定量数据)进行等距或者不等距的分组(定量分组),进行研究各组分布规律的一种分析方法。
#常用于用户的消费分布、收入分布、年龄分布等
import numpy
import pandas
data = pandas.read_csv("D:/workspaces/python/pythonStudy/26.csv")
#26.csv包括列:用户ID,注册日期,身份证号码,性别,出生日期,年龄。下载地址:https://pan.baidu.com/s/1iT3EXsE0gIKKDYHeLKRyWg
aggResult = data.groupby(by=['年龄'])['年龄'].agg({'人数':numpy.size})
#可以看到分组已经成功,但是结果不直观,从结果反映不出每个年龄的人数
#进行数值分段处理:
bins = [min(data.年龄)-1,20,30,40,max(data.年龄)+1]
labels=['20岁及以下','21岁到30岁','31岁到40岁','41岁以上']
data['年龄分层'] = pandas.cut(
data.年龄,
bins,
labels = labels
)
aggResult = data.groupby(by=['年龄分层'])['年龄'].agg({'人数':numpy.size})
#每个年龄段的人数已经出来了,但是结果依然无法直观的展示每个年龄段区别
#转化为百分比:
pAggResult = round(aggResult/aggResult.sum(),3)*100
pAggResult['人数'].map('{:,.2f}%'.format)