整理20个Pandas统计函数(下)

简介: 整理20个Pandas统计函数

最小值索引idxmin


返回最小值所在的索引


In [20]:


df["age"].idxmin()


Out[20]:


0


In [21]:


df["math"].idxmin()


Out[21]:


3


In [22]:


df["sex"].idxmin()


不能字符类型的字段使用该函数,Pandas不支持:



方差var


计算一组数据的方差,需要注意的是:numpy中的方差叫总体方差,pandas中的方差叫样本方差


标准差(或方差)分为 总体标准差(方差)和 样本标准差(方差)


  • 前者分母为n,右偏的;后者分母为n-1,是无偏的


  • pandas里是算无偏的;numpy里是有偏的


In [23]:


df.var()


Out[23]:


age2.200000 chinese130.000000 math291.666667#pandas计算结果 english370.000000 dtype:float64


In [24]:


df["math"].var()


Out[24]:


291.6666666666667


In [25]:


np.var(df["math"])#numpy计算结果


Out[25]:


218.75


In [26]:


np.var(df["age"])


Out[26]:


1.7600000000000002


In [27]:


np.var(df["english"])


Out[27]:


296.0


标准差std


返回的是一组数据的标准差


In [28]:


df.std()


Out[28]:


age1.483240 chinese11.401754 math17.078251 english19.235384 dtype:float64


In [29]:


np.std(df["math"])


Out[29]:


14.79019945774904


In [30]:


np.std(df["english"])


Out[30]:


17.204650534085253


In [31]:


np.std(df["age"])


Out[31]:


1.32664991614216


如何理解pandas和numpy两种方法对方差的求解不同:



平均绝对偏差mad



In [32]:


df.mad()


Out[32]:


age1.04 chinese8.80 math12.50 english13.60 dtype:float64


以字段age为例:


In [33]:


df["age"].mad()


Out[33]:


1.0399999999999998


In [34]:


df["age"].tolist()


Out[34]:


[22,24,25,26,24]


In [35]:


age_mean=df["age"].mean() age_mean


Out[35]:


24.2


In [36]:


(abs(22-age_mean)+abs(24-age_mean)+abs(25-age_mean) +abs(26-age_mean)+abs(24-age_mean))/5


Out[36]:


1.0399999999999998


偏度-skew


介绍峰度和偏度的好文章:https://www.cnblogs.com/wyy1480/p/10474046.html

偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。


偏度(Skewness)亦称偏态、偏态系数,表征概率分布密度曲线相对于平均值不对称程度的特征数。


直观看来就是密度函数曲线尾部的相对长度。定义上偏度是样本的三阶标准化矩:



In [37]:


df.skew()


Out[37]:


age-0.551618 chinese0.404796 math0.752837 english1.517474 dtype:float64


In [38]:


df["age"].skew()


Out[38]:


-0.5516180692881046


峰度-kurt


返回的是峰度值


In [39]:


df.kurt()


Out[39]:


age0.867769 chinese-0.177515 math0.342857 english2.607743 dtype:float64


In [40]:


df["age"].kurt()


Out[40]:


0.8677685950413174


In [41]:


df["math"].kurt()


Out[41]:


0.3428571428571434


绝对值abs


返回数据的绝对值:


In [45]:


df["age"].abs()


Out[45]:


022 124 225 326 424 Name:age,dtype:int64


如果存在缺失值,绝对值函数求解后仍是NaN:


In [46]:


df["math"].abs()


Out[46]:


090.0 1NaN 2100.0 380.0 4120.0 Name:math,dtype:float64


绝对值函数是针对数值型的字段,不能对字符类型的字段求绝对值:


In [47]:


#字符类型的数据报错 df["sex"].abs()



元素乘积prod


In [48]:


df.prod()


Out[48]:


age8.236800e+06 chinese1.188000e+10 math8.640000e+07 english8.424000e+09 dtype:float64


In [49]:


df["age"].tolist()


Out[49]:


[22,24,25,26,24]


In [50]:


22*24*25*26*24


Out[50]:


8236800


累计求和cumsum


In [51]:


df.cumsum()



累计乘积cumprod


In [52]:


df["age"].cumprod()


Out[52]:


022 1528 213200 3343200 48236800 Name:age,dtype:int64


In [53]:


df["math"].cumprod()


Out[53]:


090.0 1NaN 29000.0 3720000.0 486400000.0 Name:math,dtype:float64


In [54]:


#字符类型字段报错 df["sex"].cumprod()



20个统计函数


最后再总结下Pandas中常用来描述统计信息的函数:


相关文章
|
4月前
|
存储 数据挖掘 数据处理
Pandas中explode()函数的应用与实战
Pandas中explode()函数的应用与实战
75 0
|
4月前
|
数据挖掘 数据处理 索引
python常用pandas函数nlargest / nsmallest及其手动实现
python常用pandas函数nlargest / nsmallest及其手动实现
137 0
|
4月前
|
数据处理 索引 Python
使用pandas的merge()和join()函数进行数据处理
使用pandas的merge()和join()函数进行数据处理
79 2
|
13天前
|
SQL JSON 数据可视化
Pandas库常用方法、函数集合
Pandas库常用方法、函数集合
|
15天前
|
存储 索引 Python
高效的5个pandas函数,你都用过吗?
高效的5个pandas函数,你都用过吗?
|
15天前
|
索引 Python
高效的10个Pandas函数,你都用过吗?
高效的10个Pandas函数,你都用过吗?
|
4月前
|
机器学习/深度学习 存储 算法
Pandas中的get_dummies()函数实战应用详解
Pandas中的get_dummies()函数实战应用详解
96 1
|
4月前
|
人工智能 数据挖掘 Python
Python pandas中read_csv函数的io参数
Python pandas中read_csv函数的io参数
56 5
|
4月前
|
NoSQL Serverless Python
在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。
【5月更文挑战第2天】在Python的Pandas中,可以通过直接赋值或使用apply函数在DataFrame添加新列。方法一是直接赋值,如`df['C'] = 0`,创建新列C并初始化为0。方法二是应用函数,例如定义`add_column`函数计算A列和B列之和,然后使用`df.apply(add_column, axis=1)`,使C列存储每行A、B列的和。
206 0
|
4月前
|
数据处理 数据格式 Python
python进行数据处理——pandas的drop函数
python进行数据处理——pandas的drop函数
106 3