注:文中用到的数据文件可以在资源中免费获取。

文章目录

  • 基本统计
  • 分组分析
  • 分布分析
  • 交叉分析
  • 结构分析
  • 相关分析

基本统计

  • 常用统计函数表
函数 说明
count() 非空元素计算
min() 最小值
max() 最大值
idxmin() 最小值的位置
idxmax() 最大值的位置
quantile(0.1) 10%分位数
sum() 求和
mean() 均值
median() 中位数
mode() 众数
var() 方差
std() 标准差
mad() 平均绝对偏差
describe() 一次性输出多个描述性统计指标
>>>import pandas as pd
>>>df=pd.read_excel(r"d:\sjcltest.xlsx","Sheet3")
>>>df学号        班级  姓名 性别  英语
0  2308024241  23080242  小龙  男  76
1  2308024244  23080242  小怡  女  66
2  2308024201  23080242  小培  男  60
3  2308024347  23080242  小华  女  67
  • describe()的使用较为方便,可以一次性查看多项统计信息,实际应用中会经常通过该函数来检查数据。
>>>import pandas as pd
>>>df=pd.read_excel(r"d:\sjcltest.xlsx","Sheet3")
>>>df.英语.describe()    #df['英语'].describe()
count     4.000000
mean     67.250000
std       6.601767
min      60.000000
25%      64.500000
50%      66.500000
75%      69.250000
max      76.000000
Name: 英语, dtype: float64
结果值 意义
count 一列的元素个数
mean 一列数据的平均值
std 一列数据的均方差;(方差的算术平方根,反应一个数据集的离散程度:越大,数据间得到差异越小,数据集中的数据离散程度越低)
min 一列数据中的最小值
max 一列数据中的最大值
20% 一列数据中前25%的数据的平均值
50% 一列数据中前50%的数据的平均值
75% 一列数据中,前75%的数据的平均值
>>>import pandas as pd
>>>df=pd.read_excel(r"d:\sjcltest.xlsx","Sheet1")
>>>df[['math','physical']].describe()math   physical
count   4.000000   5.000000
mean   81.000000  72.600000
std     5.830952  18.447222
min    76.000000  52.000000
25%    76.000000  56.000000
50%    80.500000  75.000000
75%    85.500000  85.000000
max    87.000000  95.000000
>>>df[['math','physical']].mean()
math        81.0
physical    72.6
dtype: float64

分组分析

  • 分组分析是根据分组字段将分析对象划分成不同的部分,以进行对比分析各组之间的差异性的一种分析方法。常用的统计指标:size 计数、sum 求和、mean 均值、median() 中位数、min() 最小值、max() 最大值
groupby(by=[分组列1,分组列2,...])[统计列1,统计列2,...].统计函数()
#参数说明:
#by:用于分组的列
#中括号:用于统计的列
#统计函数用于统计数据

先建立分组,再用统计函数


>>>import pandas as pd
>>>import numpy as np
>>>df=pd.read_excel(r"d:\sjcltest.xlsx","Sheet3")
>>>fzl=df.groupby(by=['班级'])
>>>fzl[['英语']].mean()英语
班级
23080242  67.25
#分组统计函数一起用也可以
>>>df.groupby(by=['班级'])[['英语']].mean()英语
班级
23080242  67.25
>>>tjl=fzl['英语'].agg([('总分','sum'),('人数','size'),('平均值','mean'),('最高分','max'),('最低分','min')])
>>>tjl总分  人数    平均值  最高分  最低分
班级
23080242  269   4  67.25   76   60
>>>tj2=fzl['英语'].agg(['sum','size','mean','max','min'])
>>>tj2sum  size   mean  max  min
班级
23080242  269     4  67.25   76   60
>>>df.groupby(by=['班级','性别'])['英语'].agg([('总分','sum'),('人数','size'),('平均值','mean'),('最高分','max'),('最低分','min')])总分  人数   平均值  最高分  最低分
班级       性别
23080242 女   133   2  66.5   67   66男   136   2  68.0   76   60

分布分析

  • 分布分析是指根据分析的目的,将数据(定量数据)进行等距或不等距的分组,进而研究各组分布规律的一种分析方法。
    简单来说:就是新增一列,将原来的数据按照其性质归入新的类别中。
cut(series,bins,right=True,labels=NULL)
#series   需要分组的数据
#bins   分组的依据数据
#right   分组的时候右边是否闭合
#labels   分组的自定义标签,可以不自定义
>>>import pandas as pd
>>>df=pd.read_excel(r"d:\sjcltest.xlsx","Sheet3")
>>>bins=[0,60,70,80,90,101]
>>>labels=["不及格","及格","中等","良好","优秀"]
>>>df['英语分级']=pd.cut(df.英语,bins,right=False,labels=labels)
>>>print(df[['姓名','英语','英语分级']])姓名  英语 英语分级
0  小龙  76   中等
1  小怡  66   及格
2  小培  60   及格
3  小华  67   及格

交叉分析

  • 通常用于分析两个或两个以上分组变量之间的关系,以交叉表形式进行变量间关系的对比分析。
>>>import pandas as pd
>>>import numpy as np
>>>pivot_table(values,index,columns,aggfunc,fill_value)
#values    数据透视表中的值
#index    数据透视表中的行
#columns    数据透视表中的列
#aggfunc    统计函数,默认为mean
#fill_value    NA的值统一替换
#返回值:数据透视表的结果
>>>df_pt=pd.pivot_table(df,index="英语分级",columns="班级",aggfunc=[np.size])
>>>df_ptsize                           姓名       学号       性别       英语
班级   23080242 23080242 23080242 23080242
英语分级
及格        3.0        3      3.0        3
中等        1.0        1      1.0        1
>>>df_pt.columns
MultiIndex([('size', '姓名', 23080242),('size', '学号', 23080242),('size', '性别', 23080242),('size', '英语', 23080242)],names=[None, None, '班级'])
>>>df_pt.columns[0]
('size', '姓名', 23080242)
>>>df_pt.columns[2]
('size', '性别', 23080242)
>>>df_pt.columns[2][1]
'性别'
>>>df1=pd.pivot_table(df[['班级','英语','英语分级']],index="班级",columns="英语分级",aggfunc=[np.size],fill_value=0)
>>>df1size   英语
英语分级       及格 中等
班级
23080242    3  1
#也可以将统计为0的赋值为零,默认为nan

结构分析

  • 结构分析是在分组的基础上,计算各组成部分所占的比重,进而分析总体的内部特征的一种分析方法。
>>>df1.div(df1.sum(axis=1),axis=0)    #按列占比size      英语
英语分级        及格    中等
班级
23080242  0.75  0.25
>>>df1.div(df1.sum(axis=0),axis=1)    #按行占比size     英语
英语分级       及格   中等
班级
23080242  1.0  1.0

相关分析

  • 相关分析是研究现象之间是否存在某种依存关系,并对具体有依存关系的现象探讨其相关方向以及相关程度,是研究随机变量之间的相关关系的一种统计方法。
  • 相关系数:可以用来描述定量变量之间的关系。
相关系数r绝对值的取值范围 相关程度
0<=r<0.3 低相关度
0.3<=r<0.8 中度相关度
0.8<=r<=1 高度相关度
#两列之间的相关度计算
>>>df['英语'].corr(df['学号'])
0.21041816377780612
#多列之间的相关度计算
>>>df[['英语','学号','班级']].corr()英语        学号  班级
英语  1.000000  0.210418 NaN
学号  0.210418  1.000000 NaN
班级       NaN       NaN NaN

知识点整理不易,如果对你有帮助,给个免费的赞支持一下吧!

DataFrame数据分析相关推荐

  1. 熊猫Pivot_table()– DataFrame数据分析

    什么是数据透视表? (What is a Pivot Table?) A pivot table is a table of statistics that summarizes the data o ...

  2. dataframe数据分析常用操作汇总

    dataframe的常用操作汇总 目录 1.建 1 2.读 2 3.存 2 4.阅 2 5.取 2 6.改 4 7.增 4 8.删 5 9.并 5 10.序 7 1.建 创建只有一列的数据框 df = ...

  3. Pandas大数据清洗实战之一:安装与初识

    一.基础 1.简介 pandas是Python中的一个数据分析和清洗的库,基于numpy构建的,在其中包含了大量的标准数据模型,提供了高效操作大型数据集所需要的工具.最早呢是被作为金融数据分析工具开发 ...

  4. 15个借助AI,ChatGPT自动写代码工具

    整理了15个借助AI和ChatGPT辅助我们自动写代码的工具,整理到 15个借助AI,ChatGPT自动写代码工具http://www.webhub123.com/#/home/detail?proj ...

  5. Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)

    Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录

  6. pandas dataframe column_Python数据分析——Pandas 教程(下)

    Python数据分析--Pandas 教程(上) 上节,我们讲了 Pandas 基本的数据加载与检索,这节我们讲讲如何进行数据比较. Pandas系列对象 在 Pandas 中我们获取指定列的数据有多 ...

  7. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主

    利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...

  8. python dataframe删除某一列_怎样用Python进行数据分析

    本文总结了猴子Live课程:怎样用Python进行数据分析,主讲内容包括Numpy和Pandas. 一.一维数据分析 一维数据分析,可以使用Numpy中Array,也可以使用Pandas中的Serie ...

  9. python中的array函数作用_数据分析的python基底(3)——array、Series、DataFrame笔记...

    <利用python进行数据分析>的第4.5章介绍了两个非常重要的包,NumPy和Pandas,这篇文章是我看这两章做的笔记,只列了要点和我觉得要留意的地方. 电子书和配套代码,还有一些学习 ...

最新文章

  1. 人脸识别 python调用face++ 功能测试
  2. FD.io/VPP — L2TP
  3. 天然富硒科技成果转化-李喜贵:成立联合体谋定农业大健康
  4. python怎么安装scrapy_python2.7安装Scrapy
  5. 支持向量机的近邻理解:图像二分类为例(3)
  6. 基础——ASP.NET页面的生命周期
  7. [Leetcode][第40题][JAVA][数组总和2][回溯][剪枝]
  8. 揭秘一线互联网企业 前端JavaScript高级面试
  9. 重装vcenter后恢复原来制作的模板!
  10. 一个空间绑定多个域名实现自动跳转的几种方法!
  11. python的基础集合(八)
  12. 字节跳动面试真题:java实现远程控制
  13. Linux 命令(125)—— vmstat 命令
  14. 沫沫金::jqGrid插件-弹窗返回值
  15. matlab m语言建模,MATLAB M语言高级编程
  16. linux setlocale函数,linux setlocale用法
  17. PPT用宏插入不同背景图片
  18. 如何才能高效学习,99%的人不知道的高效学习法(非常棒棒文章)
  19. Windows蓝牙设备自动断开问题
  20. CRM如何进行客户关系管理

热门文章

  1. 【论文】CVPR、ICCV等会议及地点
  2. cisco路由器ios升级宝典
  3. matlab中hold all,matlab中的hold
  4. 关于剩余清账影响账龄和虚增借贷的问题
  5. 《手摸手带你学ClickHouse》之安装部署
  6. 三维 GIS+数字孪生,都有哪些酷炫应用?
  7. 一文带你详细了解浏览器安全
  8. Cocos2d-x开发网络游戏
  9. (四)【软件设计师】计算机系统—基础单位进制
  10. 第一篇综述-无人车简介(二)