python描述性统计离散型变量_数据的描述性统计-python实现

Python数据分析基础

Series

是个定长的字典序列,有两个基本属性:index和value

import pandas as pd

from pandas import Series, DataFrame

复制代码x1 = Series([1,2,3,4])

x2 = Series(data=[1,2,3,4], index=['a', 'b', 'c', 'd'])

print(x1)

print(x2)

复制代码0 1

1 2

2 3

3 4

dtype: int64

a 1

b 2

c 3

d 4

dtype: int64

复制代码

x1 中的 index 采用的是默认值,x2 中 index 进行了指定。我们也可以采用字典的方式来创建 Series,比如:

d = {'a':1, 'b':2, 'c':3, 'd':4}

x3 = Series(d)

print(x3)

复制代码a 1

b 2

c 3

d 4

dtype: int64

复制代码

DataFrame

数据结构类似数据库表。

data = {'Chinese': [66, 95, 93, 90,80],'English': [65, 85, 92, 88, 90],'Math': [30, 98, 96, 77, 90]}

df1= DataFrame(data)

df2 = DataFrame(data, index=['ZhangFei', 'GuanYu', 'ZhaoYun', 'HuangZhong', 'DianWei'], columns=['English', 'Math', 'Chinese'])

print(df1)

print(df2)

复制代码Chinese English Math

0 66 65 30

1 95 85 98

2 93 92 96

3 90 88 77

4 80 90 90

English Math Chinese

ZhangFei 65 30 66

GuanYu 85 98 95

ZhaoYun 92 96 93

HuangZhong 88 77 90

DianWei 90 90 80

复制代码

引入一下外部的数据,并加入字段名,显示成表格

from sklearn.datasets import load_iris

iris=load_iris()

df_iris = DataFrame(iris.data, columns=['sepal_length', 'sepa_width', 'peta_length', 'peta_width'])

print(df_iris)

复制代码sepal_length sepa_width peta_length peta_width

0 5.1 3.5 1.4 0.2

1 4.9 3.0 1.4 0.2

2 4.7 3.2 1.3 0.2

3 4.6 3.1 1.5 0.2

4 5.0 3.6 1.4 0.2

5 5.4 3.9 1.7 0.4

6 4.6 3.4 1.4 0.3

7 5.0 3.4 1.5 0.2

8 4.4 2.9 1.4 0.2

9 4.9 3.1 1.5 0.1

10 5.4 3.7 1.5 0.2

11 4.8 3.4 1.6 0.2

12 4.8 3.0 1.4 0.1

13 4.3 3.0 1.1 0.1

14 5.8 4.0 1.2 0.2

15 5.7 4.4 1.5 0.4

16 5.4 3.9 1.3 0.4

17 5.1 3.5 1.4 0.3

18 5.7 3.8 1.7 0.3

19 5.1 3.8 1.5 0.3

20 5.4 3.4 1.7 0.2

21 5.1 3.7 1.5 0.4

22 4.6 3.6 1.0 0.2

23 5.1 3.3 1.7 0.5

24 4.8 3.4 1.9 0.2

25 5.0 3.0 1.6 0.2

26 5.0 3.4 1.6 0.4

27 5.2 3.5 1.5 0.2

28 5.2 3.4 1.4 0.2

29 4.7 3.2 1.6 0.2

.. ... ... ... ...

120 6.9 3.2 5.7 2.3

121 5.6 2.8 4.9 2.0

122 7.7 2.8 6.7 2.0

123 6.3 2.7 4.9 1.8

124 6.7 3.3 5.7 2.1

125 7.2 3.2 6.0 1.8

126 6.2 2.8 4.8 1.8

127 6.1 3.0 4.9 1.8

128 6.4 2.8 5.6 2.1

129 7.2 3.0 5.8 1.6

130 7.4 2.8 6.1 1.9

131 7.9 3.8 6.4 2.0

132 6.4 2.8 5.6 2.2

133 6.3 2.8 5.1 1.5

134 6.1 2.6 5.6 1.4

135 7.7 3.0 6.1 2.3

136 6.3 3.4 5.6 2.4

137 6.4 3.1 5.5 1.8

138 6.0 3.0 4.8 1.8

139 6.9 3.1 5.4 2.1

140 6.7 3.1 5.6 2.4

141 6.9 3.1 5.1 2.3

142 5.8 2.7 5.1 1.9

143 6.8 3.2 5.9 2.3

144 6.7 3.3 5.7 2.5

145 6.7 3.0 5.2 2.3

146 6.3 2.5 5.0 1.9

147 6.5 3.0 5.2 2.0

148 6.2 3.4 5.4 2.3

149 5.9 3.0 5.1 1.8

[150 rows x 4 columns]

复制代码

数据的集中趋势

pandas可以显示关于数据的简短统计摘要

df.mean():返回所有列的均值

df.corr():返回列与列之间的相关系数

df.count():返回每一列中的非空值的个数

df.max():返回每一列的最大值

df.min():返回每一列的最小值

df.median():返回每一列的中位数

df.std():返回每一列的标准差

iris_desc = df_iris.describe()

print(iris_desc)

复制代码sepal_length sepa_width peta_length peta_width

count 150.000000 150.000000 150.000000 150.000000

mean 5.843333 3.054000 3.758667 1.198667

std 0.828066 0.433594 1.764420 0.763161

min 4.300000 2.000000 1.000000 0.100000

25% 5.100000 2.800000 1.600000 0.300000

50% 5.800000 3.000000 4.350000 1.300000

75% 6.400000 3.300000 5.100000 1.800000

max 7.900000 4.400000 6.900000 2.500000

复制代码

#中位数

df_iris.median()

复制代码sepal_length 5.80

sepa_width 3.00

peta_length 4.35

peta_width 1.30

dtype: float64

复制代码

#返回众数

df_iris.mode()

复制代码

sepal_length

sepa_width

peta_length

peta_width

0

5.0

3.0

1.5

0.2

数据的离中趋势

#方差

df_iris.var()

复制代码sepal_length 0.685694

sepa_width 0.188004

peta_length 3.113179

peta_width 0.582414

dtype: float64

复制代码

#标准差

df_iris.std()

复制代码sepal_length 0.828066

sepa_width 0.433594

peta_length 1.764420

peta_width 0.763161

dtype: float64

复制代码

#极差

df_iris.max()-df_iris.min()

复制代码sepal_length 3.6

sepa_width 2.4

peta_length 5.9

peta_width 2.4

dtype: float64

复制代码

#平均偏差

df_iris.mad()

复制代码sepal_length 0.687556

sepa_width 0.333093

peta_length 1.561920

peta_width 0.658933

dtype: float64

复制代码

#变异系数

df_iris.std()/df_iris.mean()

复制代码sepal_length 0.141711

sepa_width 0.141976

peta_length 0.469427

peta_width 0.636675

dtype: float64

复制代码

#四分位差

iris_desc.loc['75%']-iris_desc.loc['25%']

复制代码sepal_length 1.3

sepa_width 0.5

peta_length 3.5

peta_width 1.5

dtype: float64

复制代码

#偏态(偏度)系数(skew):

iris_desc.skew()

复制代码sepal_length 2.819292

sepa_width 2.825707

peta_length 2.820098

peta_width 2.827191

dtype: float64

复制代码

#峰态系数

iris_desc.kurt()

复制代码sepal_length 7.961842

sepa_width 7.988527

peta_length 7.964526

peta_width 7.994746

dtype: float64

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值