# -*- coding: utf-8 -*-
#1、概念:交叉分析,通常用于分析两个或两个以上,分组变量之间的关系,以交叉表形式进行变量间关系的对比分析;
#可以有三种情况下的交叉:定量与定量分组进行交叉;定量与定性分组进行交叉;定性与定性分组进行交叉
#建议交叉的维度为两个维度即可,维度越多,越细,就越难发现规律
#2、交叉计数函数:
#pivot_table(values,index,columns,aggfunc,fill_value)
#参数说明:
#values:数据透视表(pivot_table返回的表)中的值
#index:数据透视表中的行(行分组的列数组,也就是数据透视表中的行)
#columns:数据透视表中的列(列分组的列数组,也就是数据透视表中的列)
#aggfunc:统计函数(也就是数据表中对统计列(values指定的列)的统计函数,常用的统计函数就是之前学的计数、求和等)
#fill_value:NA值的统一替换
#更详细的讲解可参考:http://python.jobbole.com/81212/
import numpy
import pandas
data = pandas.read_csv("D:/workspaces/python/pythonStudy/27.csv")
#27.csv包括列:用户ID,注册日期,身份证号码,性别,出生日期,年龄。下载地址:https://pan.baidu.com/s/1x38c4wFe-qRSn9yLC93iHQ
bins = [min(data.年龄)-1,20,30,40,max(data.年龄)+1]
labels = ['20岁以及以下','21岁到30岁','31岁到40岁','41岁以上']
data['年龄分层'] = pandas.cut(data.年龄,bins,labels=labels)
ptResult = data.pivot_table(
values=['年龄'],
index=['年龄分层'],
columns=['性别'],
aggfunc=[numpy.size]
)