[pandas基础] Python Pandas描述性统计基础内容

Pandas描述性统计简介

描述统计学(descriptive statistics)是一门统计学领域的学科,主要研究如何取得反映客观现象的数据,并以图表形式对所搜集的数据进行处理和显示,最终对数据的规律、特征做出综合性的描述分析。

Pandas 库正是对描述统计学知识完美应用的体现,可以说如果没有“描述统计学”作为理论基奠,那么 Pandas 是否存在犹未可知。下列表格对 Pandas 常用的统计学函数做了简单的总结:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oiR55yf5LiN5Lya566X5rOV,size_20,color_FFFFFF,t_70,g_se,x_16

从描述统计学角度出发,我们可以对 DataFrame 结构执行聚合计算等其他操作,比如 sum() 求和、mean()求均值等方法。

在 DataFrame 中,使用聚合类方法时需要指定轴(axis)参数。下面介绍两种传参方式:对行操作,默认使用 axis=0 或者使用 "index";对列操作,默认使用 axis=1 或者使用 "columns"。

也可以说,axis=0 表示按垂直方向进行计算,axis=1 表示按水平方向进行计算。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oiR55yf5LiN5Lya566X5rOV,size_20,color_FFFFFF,t_70,g_se,x_16

下面对pandas常用的统计学方法进行测试

若无显式的写出axis的取值,默认axis=0,即按垂直方向进行计算

首先创建一个DataFrame

import pandas as pd
import numpy as np

data = {
    'Name':pd.Series(['小明','小亮','小红','小华',\
                     '老赵','小曹','小陈','老李',\
                     '老王','小冯','小何','老张']),
    'Age':pd.Series([25,26,25,23,30,29,23,34,40,30,51,46]),
    'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8,3.78,2.98,4.80,4.10,3.65])
}

df = pd.DataFrame(data)
df

输出:

1c0a10c422f3474bbe9b68e8fd85293b.png

目录

 sum()方法

count()方法

mean()方法

median()方法

mode()方法

std()方法

describe()方法

cumsum()方法


 

 sum()方法

df.sum()

若没有参数,默认axis=0,即对所有列进行求和

输出:

Name      小明小亮小红小华老赵小曹小陈老李老王小冯小何老张
Age                            382
Rating                       44.92
dtype: object

当然也可以选择某一列求和

df.Age.sum()

选择Age列,对Age列的全部属性值求和

输出:

382

当然也可以对行进行求和

df.sum(axis=1)

 对各行中数据类型为数值型的数据求和

输出:

0     29.23
1     29.24
2     28.98
3     25.56
4     33.20
5     33.60
6     26.80
7     37.78
8     42.98
9     34.80
10    55.10
11    49.65
dtype: float64

count()方法

df.count()

将输出各个列的非空值数量

输出:

Name      12
Age       12
Rating    12
dtype: int64

mean()方法

df.mean()

将对数据类型为数值型的各个列中的数据求平均值

输出:

Age       31.833333
Rating     3.743333
dtype: float64

当然也可以选择某一列,对这一列的值求均值

df.Age.mean()

输出:

31.833333333333332

median()方法

df.median()

求数据类型为数值型的各个列中的中位数

输出:

Age       29.50
Rating     3.79
dtype: float64

mode()方法

df.Age.mode()

输出Age列中出现次数最多的数值

输出:

0    23
1    25
2    30
dtype: int64

由于数值23、25、30在Age列中均出现了2次,且出现次数是最多的,所以将这三个数输出

结果数据类型为Series

若某一列没有重复的数据,则将会输出全部数据

df.Rating.mode()

输出:

0     2.56
1     2.98
2     3.20
3     3.24
4     3.65
5     3.78
6     3.80
7     3.98
8     4.10
9     4.23
10    4.60
11    4.80
dtype: float64

std()方法

输出数据类型为数值型的各个列的标准差

df.std()

输出:

Age       9.232682
Rating    0.661628
dtype: float64

describe()方法

describe()函数输出平均值、std、和IQR(四分位距)等一系列统计信息

df.describe()

输出:

65a59bc1d9294718bd37e7a4ddf7485b.png

 当然只计算数据类型为数值型的列

cumsum()方法

计算累计和

df.cumsum()

输出:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oiR55yf5LiN5Lya566X5rOV,size_14,color_FFFFFF,t_70,g_se,x_16

若将axis的值设置为1或者'columns',将会报错,因为str类型的数据不能与数值型的数据相加

 

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值