Pandas函数(2)

本文详细介绍了Pandas库中的统计分析函数,包括描述性统计信息如求和、平均数、标准差,汇总函数如describe和info,统计函数如pct_change、方差、协方差和相关性,以及窗口函数如rolling、expanding和ewm等。通过这些函数,可以深入理解和处理数据集的各种统计特性。

一、描述性统计信息函数

#创建一个DataFrame数据框
import pandas as pd
import numpy as np
dic = {
    'name':['zhang','wang','li','zhao','sun'],
    'age':[17,18,18,18,19],
    '数学':[83,89,94,94,92],
    '语文':[89,90,91,92,92],
    '英语':[92,93,94,94,95]
}
df=pd.DataFrame(data=dic,index=[1,2,3,4,5])
df

在这里插入图片描述

1)、求和:

df.sum(axis=0)

在这里插入图片描述

2)、求平均数

df.mean()

在这里插入图片描述

3)、求标准差

df.std()

在这里插入图片描述

4)、计数

df.count()

在这里插入图片描述

5)、求每一行的中位数

df.median(axis=1)

在这里插入图片描述

6)、每一行最小值

df.min(axis=1)

在这里插入图片描述

7)、四分位数

df.quantile(0.25)

在这里插入图片描述

8)、累积求和

df.cumsum()

在这里插入图片描述

9)、累积最大值

df.cummax()

在这里插入图片描述

10)、累积最小值

df.cummin()

在这里插入图片描述

二、汇总函数

1)、描述函数describe()

df.describe()

在这里插入图片描述

2)、信息函数info()

df.info()  #特征数据类型、非空数量、总体样本量

在这里插入图片描述

三、统计函数

1、pct_change()函数

1)、此函数将每个元素与其前一个元素进行比较,并计算变化百分比

2)、pct_change()对列进行操作; 如果想应用到行上,那么可使用axis = 1参数

import pandas as pd
import numpy as np

s = pd.Series([1,2,3,4,5])
print(s)
print (s.pct_change())

在这里插入图片描述

2、方差Var

样本方差: S^2= ∑(X-u ) ^2 / (n-1)
衡量随机变量或一组数据时离散程度的度量

s.var()

在这里插入图片描述

3、协方差Cov

Cov(X,Y)=E[(x-E[x])(Y-E[Y])
方差用于衡量两个变量的总体误差。 Series对象有一个方法cov用来计算序列对象之间的协方差。NA将被自动排除。

import pandas as pd
import numpy as np

s1 = pd.Series(np.random.randn(10))
s2 = pd.Series(np.random.randn(10))
print (s1.cov(s2))

在这里插入图片描述
当应用于DataFrame时,协方差方法计算所有列之间的协方差(cov)值

import pandas as pd
import numpy as np

frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print(frame['a'].cov(frame['b']))
print(frame.cov())

在这里插入图片描述

4、相关性

r(X,Y)=Cov(X,Y)/根号下[Var(X)Var(Y)]
相关性显示了任何两个数值(系列)之间的线性关系。有多种方法来计算pearson(默认)

import pandas as pd
import numpy as np

frame = pd.DataFrame(np.random.randn(10, 5), columns=['a', 'b', 'c', 'd', 'e'])
print(frame)

print (frame.corr())

在这里插入图片描述

5、数据排名 rank

排名函数,目的就是按照某种规则(从大到小,从小到大)给原序列的值进行排名。

所返回的结果也是一个序列,它展示来愿序列中每一个值在序列中的名次

ser = pd.Series([1,2,3,7,3])
ser

在这里插入图片描述

ser.rank()   #在原来ser这个序列中,0-4这5个索引所对应的每一个值分别在序列里排名第几

在这里插入图片描述
method参数
‘’’
method=‘average’ (默认设置):那么这两个人就占据了前两名,分不出谁第 1,谁第 2,就把两人的名次算个平均数,都算 1.5 名,这样下一个人就是第3名。
method=‘max’:两人并列第 2 名,下一个人是第 3 名。
method=‘min’:两人并列第 1 名,下一个人是第 3 名。
method=‘dense’:两人并列第 1 名,但下一个人是第 2 名。
method=‘first’:按数据在原始数据中出现的次序进行排名的
‘’’

ser.rank(method='average')

在这里插入图片描述

ser.rank(method='max')

在这里插入图片描述

ser.rank(method='min')

在这里插入图片描述

ser.rank(method='first')

在这里插入图片描述

四、窗口函数

1、==.rolling()函数 ==

固定窗口大小,这个函数可以应用于一系列数据。指定window=n参数,并应用适当的统计函数。

参数解释:window:表示时间窗的大小,min_periods:每个窗口最少包含的观测值数量, on: 可选参数。对于dataframe而言,指定要计算滚动窗口的列。值为列名。axis: 默认为0,即对列进行计算

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10, 4),index = pd.date_range('1/1/2020', periods=10),columns = ['A', 'B', 'C', 'D'])
print(df)

在这里插入图片描述

 print (df.rolling(window=3).mean())   #移动平均值

在这里插入图片描述

2、expanding()函数

只设置最小的观测值数量,不固定窗口大小,实现累计计算,即不断扩展;rolling()函数,是固定窗口大小,进行滑动计算

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
                  index = pd.date_range('1/1/2018', periods=10),
                  columns = ['A', 'B', 'C', 'D'])
df

在这里插入图片描述

df.expanding(min_periods=2).mean()

在这里插入图片描述

3、ewm()指数加权函数

ewm(com =无,跨度=无,半衰期=无,alpha =无,min_periods = 0,调整= True,ignore_na = False,轴= 0,时间=无)

根据质心指定衰减, α=1/(1+com)

df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]})
df

在这里插入图片描述

df.ewm(com=0.5).mean()

在这里插入图片描述
ewm计算原理如下(里面有公式推导哦!):参考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.ewm.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值