Pandas实现数据统计指标
程序员文章站
2022-03-10 19:54:02
前言这篇文章主要复习一下用pandas库实现数据统计的一些方法,包括均值,上分位数,下分位数,以及缺失值的统计。1.数据统计指令1.1 求和指令对于DataFrame中的数据,统计是基于无NAN数据(求和操作中,NAN相当于0),求和指令如下:import pandas as pddf = pd.DataFrame([[1.4, np.nan], [7.1, -4.5], [np.nan, np.nan], [0.75, -1.3]],...
前言
这篇文章主要复习一下用pandas库实现数据统计的一些方法,包括均值,上分位数,下分位数,以及缺失值的统计。
文章目录
1.数据统计指令
1.1 求和指令
对于DataFrame中的数据,统计是基于无NAN数据(求和操作中,NAN相当于0),求和指令如下:
import pandas as pd
df = pd.DataFrame([[1.4, np.nan], [7.1, -4.5],
[np.nan, np.nan], [0.75, -1.3]],
index=['a', 'b', 'c', 'd'],
columns=['one', 'two'])
df
df.sum() # 返回的是对于每一列数据和的Series数据
one | 9.25 |
---|---|
two | -5.8 |
如果操作对象想转化为对每一行的数据进行求和操作,代码如下:
# 第一种表示方法
df.sum(axis = 1)
# 第二种表示方法
df.sum(axis = "columns")
1.2 均值指令
# 操作对象还是基于列
df.mean()
# 操作对象基于行
df.mean(axis = 1)
# 如果不想忽略NAN值,可以通过修改参数
df.mean(axis = 'columns', skipna = False)
1.3 返回最大(小)值的索引
df.idxmax() #返回每一列最大值的索引
df.idxmin() # 返回每一列最小值的索引
1.4 累积值统计
返回一个DataFrame, 是基于每一列的累加值返回
df.cumsum()
1.5 一次性产生多个数据统计
基于的对象还是DataFrame中的列
df.describe() # 可以一次性产生包括最小值,最大值,标准差等
2 计算相关系数和协方差
2.1 作用对象是Series
# 第一种表示方式
returns = pd.DataFrame([[1.5,1.6,1.7,1.8],
[1.5,1.6,1.7,1.8],
[1.5,1.6,1.7,1.8],
[1.5,1.6,1.7,1.8]],
index = ['a','b','c','d'],
columns = ['A','B','C','D'])
# 相关系数计算
returns['A'].corr(returns['B'])
# 协方差计算
returns['A'].cov(returns['B'])
# 第二种表示方式
returns.A.cov(returns.B)
2.2 作用对象是DataFrame
返回一个完整的DataFrame的协方差(相关系数)矩阵。
returns.cov() # 协方差矩阵
returns.corr() # 相关系数矩阵
corrwith()方法用于计算 DataFrame 和 Series 之间的相关系数。
# 这里DataFrame中的对象是列
returns.corrwith(returns.B)
# 改变作用对象为DataFrame中的行,与corrwith()中的Series进行相关系数计算
returns.corrwith(returns.B, axis = 1)
3 唯一值,统计频次
3.1 获取唯一值
有点类似于集合(在我的世界里,你就是唯一)。
obj = pd.Series(['c', 'a', 'd', 'a', 'a', 'b', 'b', 'c', 'c'])
obj.unique()
3.2 统计数值频次
作用对象是Series, value_counts()中数据的维度必须是1,所以无法统计DataFrame。统计DataFrame中出现的频次使用的是apply函数。
obj.value_counts() # 出现的频次由高到低进行排序
# 也可以对值的字母顺序进行排序
pd.value_counts(obj.values, sort = False)
3.3 对数据进行过滤
操作对象为 Series 和 DataFrame 中的列。
obj2 = obj.isin(['b', 'c']) #返回布尔值的Series
obj[obj2] # 筛选出了元素为 'b','c'的Series
3.4 apply函数
对DataFrame中的数据频次进行统计。
data = pd.DataFrame({'Qu1': [1, 3, 4, 3, 4],
'Qu2': [2, 3, 1, 2, 3],
'Qu3': [1, 5, 2, 4, 4]})
result = data.apply(pd.value_counts).fillna(0)
本文地址:https://blog.csdn.net/weixin_43226196/article/details/107617586
上一篇: threejs开发3d地球酷炫效果