首页 > 编程语言 > 详细

Python大数据分析之数据分析

时间:2019-12-12 10:22:29      阅读:111      评论:0      收藏:0      [点我收藏+]
# -*- coding: utf-8 -*-

#1,基本统计分析
==================
常用统计函数:
size:计数,不需要括号
sum():求和
mean():均值
var():方差
std():标准差
==================

import pandas as pd
df = pd.read_excel(rd:\rz.xlsx,sheet_name=Sheet3)

print(df.数分.describe())
print(df.describe())
print(df.解几.size)
print(df.解几.sum())
print(df.解几.var())

import numpy as np
print(np.average(df[数分]))  #用numpy的ave函数求均值
print(df.mode())  #计算众数


#2,分组分析
==================
根据分组字段将分析对象划分成不同的部分,以对比分析各组之间差异性。
df.groupby(by=[分类1,分类2,...])[被统计的列].agg({列名1:统计函数1,
         列名2:统计函数2,...})
by表示按列进行分组,常用统计函数有size计数,sum求和,mean求均值
==================

import numpy as np
from pandas import read_excel
df = read_excel(rd:\rz.xlsx,sheet_name=Sheet3)
#英语、体育、军训列的分数必须为int,否则结果会空
print(df.groupby(by=班级)[英语,体育,军训].mean())
print(df.groupby(by=[班级,性别])[军训].agg(
        {总分:np.sum,
         人数:np.size,
         平均值:np.mean,
         方差:np.var,
         标准差:np.std,
         最高分:np.max,
         最低分:np.min}))

#3,分布分析
#根据分析的目的,将数据进行等距或不等距分组,研究各组分布规律。
import pandas as pd
import numpy
df = pd.read_excel(rd:\rz.xlsx,sheet_name=Sheet3)
df[总分]=df.英语+df.体育+df.军训+df.数分+df.高代+df.解几
#将数据分为3段
bins=[min(df.总分)-1,400,450,max(df.总分)+1]
#给3段数据贴标签
labels=[400以下,400到450,450以上]
df[总分分层]=pd.cut(df.总分,bins,labels=labels)
print(df)


#4,交叉分析
==================
分析两个或以上分组变量之间的关系,以交叉表形式进行变量间关系的对比分析。
pivot_table(values,index,columns,aggfunc,fill_value),将数据列透视为新表。
values表示透视新表中的值,可选参数
index透视表中的行,必选参数
columns透视表中的列,用来分割数据,可选参数
aggfunc统计函数,可选参数
fill_value表示NA值的统一替换,可选参数
==================
#接上面代码
#按index进行分组,透视所有int列
print(df.pivot_table(index=[班级,姓名])) 
#透视指定列
print(df.pivot_table([军训,英语,体育],index=[班级,姓名]))
#按index进行分组,透视values列,列名按性别分开显示
print(df.pivot_table(values=[总分],
                     index=[总分分层],
                     columns=[性别],
                     aggfunc=[numpy.size,numpy.mean]))


#5,结构分析
#在分组分析及交叉分析的基础之上,计算各组成部分所占的比重。
df_pt=df.pivot_table(values=[总分],
                     index=[班级],
                     columns=[性别],
                     aggfunc=[numpy.sum])
print(df_pt)
print("!!!!",df_pt.sum())    #默认按行合计
print("@@@@",df_pt.sum(axis=1))  #按列合计 
print("####",df_pt.div(df_pt.sum(axis=1),axis=0))  #按列占比
print("$$$$",df_pt.div(df_pt.sum(axis=0),axis=1))  #按行占比


#6,相关分析
==================
研究现象之间是否存在某种依赖关系,并对具有依赖关系的现象探讨相关方向和程度
DataFrame.corr() 计算每列两两之间的相似度,返回DataFrame
Series.corr() 计算该序列与传入的序列之间的相关度,返回一个数值型,大小为相关度
==================

import pandas as pd
import numpy as np
df = pd.read_excel(rd:\rz.xlsx,sheet_name=Sheet3)
print(df[高代].corr(df[数分]))
print(df.loc[:,[英语,体育,军训,解几,数分,高代]].corr())

Python大数据分析之数据分析

原文:https://www.cnblogs.com/xiaohuhu/p/12027267.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!