描述统计学(descriptive statistics)是一门统计学领域的学科,主要研究如何取得反映客观现象的数据,并以图表形式对所搜集的数据进行处理和显示,最终对数据的规律、特征做出综合性的描述分析。
下列表格对 Pandas 常用的统计学函数做了简单的总结:
| 函数名称 | 描述说明 |
|---|---|
| count() | 统计某个非空值的数量。 |
| sum() | 求和 |
| mean() | 求均值 |
| median() | 求中位数 |
| mode() | 求众数 |
| std() | 求标准差 |
| min() | 求最小值 |
| max() | 求最大值 |
| abs() | 求绝对值 |
| prod() | 求所有数值的乘积。 |
| cumsum() | 计算累计和,axis=0,按照行累加;axis=1,按照列累加。 |
| cumprod() | 计算累计积,axis=0,按照行累积;axis=1,按照列累积。 |
| corr() | 计算数列或变量之间的相关系数,取值-1到1,值越大表示关联性越强。 |
在 DataFrame 中,使用聚合类方法时需要指定轴(axis)参数。下面介绍两种传参方式:

从上图可看出,axis=0 表示按垂直方向进行计算,而 axis=1 则表示按水平方向。
创建一个 DataFrame 结构,如下所示:
d = {'Name':pd.Series(['Jack','Blair','Jane','Lee']), 'Age':pd.Series([11,12,13,14]), 'Score':pd.Series([1,2,3,4]) }df = pd.DataFrame(d)print(df)输出结果:
Name Age Score0 Jack 11 11 Blair 12 22 Jane 13 33 Lee 14 4在默认情况下,返回 axis=0 的所有值的和。示例1 如下:
df.sum()输出结果:
Name JackBlairJaneLeeAge 50Score 10dtype: object注意:sum() 和 cumsum() 函数可以同时处理数字和字符串数据。虽然字符聚合通常不被使用,但使用这两个函数并不会抛出异常;而对于 abs()、cumprod() 函数则会抛出异常,因为它们无法操作字符串数据。
示例2:
df.sum(axis= 1)#只对number数据进行处理输出结果:
0 121 142 163 18dtype: int64示例3:
df.mean()#只对number数据进行处理输出结果:
Age 12.5Score 2.5dtype: float64示例4:
df.mean(axis=1)#只对number数据进行处理输出结果:
0 6.01 7.02 8.03 9.0dtype: float64返回数值列的标准差。
标准差是方差的算术平方根,它能反映一个数据集的离散程度。注意,平均数相同的两组数据,标准差未必相同。
示例5:
df.std()输出结果:
Age 1.290994Score 1.290994dtype: float64示例6:
df.std(axis = 1)输出结果:
0 7.0710681 7.0710682 7.0710683 7.071068dtype: float64describe() 函数显示与 DataFrame 数据列相关的统计信息摘要。
示例7:
df.describe()输出结果:
Age Scorecount 4.000000 4.000000mean 12.500000 2.500000std 1.290994 1.290994min 11.000000 1.00000025% 11.750000 1.75000050% 12.500000 2.50000075% 13.250000 3.250000max 14.000000 4.000000 describe() 函数输出了平均值、std 和 IQR 值(四分位距)等一系列统计信息。通过 describe() 提供的include能够筛选字符列或者数字列的摘要信息。
include 相关参数值说明如下:
示例8:
df.describe(include=['number'])输出结果:
Age Scorecount 4.000000 4.000000mean 12.500000 2.500000std 1.290994 1.290994min 11.000000 1.00000025% 11.750000 1.75000050% 12.500000 2.50000075% 13.250000 3.250000max 14.000000 4.000000示例9:
df.describe(include='object')输出结果:
Namecount 4unique 4top Blairfreq 1示例10:
df.describe(include='all')输出结果:
Name Age Scorecount 4 4.000000 4.000000unique 4 NaN NaNtop Blair NaN NaNfreq 1 NaN NaNmean NaN 12.500000 2.500000std NaN 1.290994 1.290994min NaN 11.000000 1.00000025% NaN 11.750000 1.75000050% NaN 12.500000 2.50000075% NaN 13.250000 3.250000max NaN 14.000000 4.000000
因上求缘,果上努力~~~~ 作者:cute_Learner,转载请注明原文链接:https://www.cnblogs.com/BlairGrowing/p/15866363.html