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

被折叠的 条评论
为什么被折叠?



