#Python小组第四期3组第三次学习总结#

2017-11-19  本文已影响0人  DrBear_smile

[TOC]

第五章

课时27 基本统计

参考excel透视表中对应的一些计算方法

describe()
# size,sum,mean,var,std
data.score.describe()
data.score.size
data.score.max()
data.score.min()
data.score.sum()
data.score.mean()
data.score.var()
data.score.std()
# 稍微复杂的案例
#累计求和
data.score.cumsum()

#最大值和最小值所在位置
data.score.argmin()
data.score.argmax()

data.score.quantile(
    0.3, 
    interpolation="nearest"
)

课时28 分组分析

分析对象的聚类分群,对比差异性

# groupby(by=[分组列1,分组列2,...)[统计列1,统计列2...].agg({统计列别名1:统计函数1,统计列别名2:统计函数2})
aggResult = data.groupby(
    by=['class']
)['score'].agg({
    '总分': numpy.sum, 
    '人数': numpy.size, 
    '平均值': numpy.mean
})

课时29 分布分析

#cut
#groupby

课时30 交叉分析

  • 定量、定量
  • 定量、定性
  • 定性、定性
# pivot_table(values, index,columns, aggfunc, fill_value)
# 数据透视表
# fill_value为NA数据的填充值
ptResult = data.pivot_table(
    values=['年龄'], 
    index=['年龄分层'], 
    columns=['性别'], 
    aggfunc=[numpy.size]
)

课时31 结构分析

定性分组

# axis
# 0:按列运算,1:按行运算

这里axis和前面3.3课时的时候的axis又会遇到纠结
drop(1,axis=0)是按行删除,但是apply(min,axis=0)是按列计算,如何统一?

自己的思考:看结果,如果值与dataframe的列数一致axis = 0,如果值与dataframe的行数一致axis=1.那么axis=0的结果是删除了第2(1+1,0起点)行,也就是删除的内容与列数一致。所以是列操作,稍微有点儿绕,求大神指点

ptResult.div(ptResult.sum(axis=1), axis=0)

ptResult.div(ptResult.sum(axis=0), axis=1)

课时32 相关分析

随机变量的相互依存关系

常见的线性关系为主要研究对象。

Pearson相关系数r来刻画线性相关程度:

广告投放和销售额;身高与体重

DataFrame.corr()
Series.corr(other)

$\rho=\frac{Cov(X,Y)}{\delta_{x}\delta_{y}}$
去除量纲后的“协方差”就是相关系数

课时33 RFM分析

定义

  • 客户活跃度、交易金额来进行客户价值分群
  • Recency(最近一次交易), Frequency(交易总次数), Monetray(交易总额)

基本假设

bins = aggData.MonetaryAgg.quantile(
    q=[0, 0.2, 0.4, 0.6, 0.8, 1],
    interpolation='nearest'
)
bins[0] = 0
labels = [1, 2, 3, 4, 5]
M_S = pandas.cut(
    aggData.MonetaryAgg, 
    bins, labels=labels
)
aggData.sort(
    ['level', 'RFM'], 
    ascending=[1, 1]
)
# python3.6运行后,错误,需要更换函数为sort_values
aggData.sort_values(
    ['level', 'RFM'], 
    ascending=[1, 1]
)

课时34 矩阵分析

根据事物重要性,进行关联分析

主要在于两个变量的选择,可视化的来分析多维度的分布情况,进而分析关联性

上一篇下一篇

猜你喜欢

热点阅读