Pandas笔记7----------Pandas数学函数、分组

一、数学函数

1.聚合函数

  • 非空数据的个数
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
#非空数量
print('每一列非空元素的数量:\n',df.count())
print('每一行非空元素的数量:\n',df.count(axis=1))
  • 最大值、最小值
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
#最大值
print('默认求在每一列中的最大值:\n',df.max())
print('默认求在每一行中的最大值:\n',df.max(axis=1))
print("############################")
#最小值
print('默认求在每一列中的最小值:\n',df.min())
print('默认求在每一行中的最小值:\n',df.min(axis=1))
  • 中位数
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
print('每一列的中位数:\n',df.median())
  • 求和
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
print('每一列的求和:\n',df.sum())
print('每一行的求和:\n',df.sum(axis=1))
print('所有元素的求和:\n',df.values.sum())
  • 平均数
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
print('每一列的平均值:\n',df.mean())
print('每一行的平均值:\n',df.mean(axis=1))
  • 统计元素出现次数
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
print(df[1].value_counts())
  •  累加
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
print(df.cumsum())
  • 累乘
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
print(df.cumprod())

 2.方差和标准差

  • 方差:var()
    • 当数据分布比较分散时,各数据与平均数的差的平方和较大,方差就较大
    • 当数据分布比较集中时,各数据与平均数的差的平方和较小
    • 方差越大,数据波动越大,方差越小,数据波动越小
    • \sigma^{2}=\frac{\sum_{i=1}^{N}\left(X_{i}-\mu\right)^{2}}{N}
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
print('方差:\n',df.var())
  • 标准差:std()
    • \sigma =\sqrt{\frac{\sum_{i=1}^{N}\left(X_{i}-\mu\right)^{2}}{N}}
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
print('标准差:\n',df.std())

3.协方差和相关系数r

  • 协方差
    • 两组数值中每对变量的偏差乘积的平均值
    • 协方差>0:表示两组变量正相关
      • 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值时另一个也大于自身的期望值,那么两个变量之间的协方差就是正值
    • 协方差<0:表示两组变量正相关
      • 如果两个变量的变化趋势相反,即其中一个变量大于自身的期望值时另一个却小于自身的期望值,那么两个变量之间的协方差就是负值
    • 协方差=0:表示两组变量不相关
    • Cov(X,Y)=\frac{\sum_{i=1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y})}{n-1}
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
#协方差
print(df.cov())
print("############################")
#第0列和第1列的协方差
print(df[0].cov(df[1]))
  • 相关系数
    • 相关系数 = X与Y的协方差/(X的标准差*Y的标准差)
    • 相关系数的值的范围在-1和+1之间
    • r>0为正相关,r<0为负正相关,r=0为不相关
    • r的绝对值越大,相关程度越高
    • r(X,Y)=\frac{Cov(X,Y)}{\sigma _{x}\sigma _{y}}
import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(0,100,size=(5,3)))
print(df)
print("############################")
#所有特征相关系数
print(df.corr())
print("############################")
#单一有特征相关系数
print(df.corrwith(df[2]))

二、分组

groupby()函数和.groups,在groupby()函数有一个重要参数"by",作用是选择通过哪个值来分组

import numpy as np
import pandas as pd
df = pd.DataFrame(
    {
        'color':['green','green','yellow','blue','blue','yellow','yellow'],
        'price':[4,5,3,2,1,7,6]
    }
)
print(df)
print("############################")
print(df.groupby(by='color'))
print("############################")
print(df.groupby(by='color').groups)
print("############################")
print(df.groupby(by='color').sum())

知识点为听课总结笔记,课程为B站“千锋教育Pandas数据分析从入门到实战,零基础小白保姆级Python数据分析教程”:001_Pandas_Pandas介绍_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值