pandas之数值计算与统计
数值计算与统计
对于DataFrame来说,求和、最大、最小、平均等统计方法,默认是按列进行统计,即axis = 0,如果添加参数axis = 1则会按照行进行统计。
如果存在空值,在统计时默认会忽略空值,如果添加参数skipna = False,统计时不会忽略空值。
- count() 非NaN的元素个数
- sum() 和
- mean() 平均值
- median() 中位数
- max() 最大值
- min() 最小值
- mode()众数
- std() 标准差
- var() 方差
- describe():包括count()、mean()、std()、min()、25%、50%、75%、max()
- skew(),样本的偏度
- kurt(),样本的峰度
分位数
quantile(q=0.5,axis=0),统计分位数,q确定位置,默认为0.5,axix=0默认按行统计,1按列统计 【适用于Seris和DataFrame】
计算逻辑:r = i + ( j - i ) * f
①将行或者列按数值大小升序排序,并计算位置pos = 1+(n-1)*q,其中n为行或列的长度,q为定义的参数
②根据pos确定 i 和 j,例如计算得pos=3.2,则i为第3个数,j为第4个数,f为pos的小数部分
dic = {'one':[1,3,2,5,4],'two':[2,4,3,6,5],'three':[3,7,5,6,4]} df = pd.DataFrame(dic,index=list('abcde')) print(df) print(df.quantile(0.1)) print(df.quantile([0.5,0.7])) # one two three # a 1 2 3 # b 3 4 7 # c 2 3 5 # d 5 6 6 # e 4 5 4 # one 1.4 # two 2.4 # three 3.4 # Name: 0.1, dtype: float64 # one two three # 0.5 3.0 4.0 5.0 # 0.7 3.8 4.8 5.8
分位数
以上以quantile(q=0.7)为例讲解,按照列进行统计,每列的长度为5
pos = 1 + ( 5 - 1 ) * 0.7 = 3.8,因此i为每列的第3位数,j为每列的第4位数,且f为3.8的小数部分即0.8
result_one = 3 + ( 4 - 3 ) * 0.8 = 3.8
result_two = 4 + ( 5 - 4 ) * 0.8 = 4.8
reslut_three = 5+ ( 6 - 5 ) * 0.8 = 5.8
上四分位和下四分位确定位置pos = (n-1)/4和pos=3* (n-1)/4,结果计算同为r = i + ( j - i ) * f
四分位参考https://blog.csdn.net/kevinelstri/article/details/52937236
累计值
cumsum() 累计和、cumprod() 累计积、cummax()累计最大值、cummin()累计最小值【适用于Seris和DataFrame】
dic = {'one':[1,3,2,5,4],'two':[2,4,3,6,5]} df = pd.DataFrame(dic,index=list('abcde')) df['one_cumsum'] = df['one'].cumsum() #相当于增加一列 df['one_cumprod'] = df['one'].cumprod() df['two_cummax'] = df['two'].cummax() df['two_cummin'] = df['two'].cummin() print(df) # one two one_cumsum one_cumprod two_cummax two_cummin # a 1 2 1 1 2 2 # b 3 4 4 3 4 2 # c 2 3 6 6 4 2 # d 5 6 11 30 6 2 # e 4 5 15 120 6 2
累计和、累计积、累计最大值、累计最小值
唯一值
对序列进行唯一值unique()之后生成的是一维数组 【适用于Seris】
s = pd.Series(list('abaefb')) print(s) sq = s.unique() print(sq,type(sq)) sq_s = pd.Series(sq) # 0 a # 1 b # 2 a # 3 e # 4 f # 5 b # dtype: object # ['a' 'b' 'e' 'f'] <class 'numpy.ndarray'>
Seris的unique()
值计数
value_counts(),统计Seris中相同的值出现的次数,生成一个新的Seris,新Seris的index为原来的值,值为出现的次数 【适用于Seris】
参数:normalize=False, sort=True, ascending=False,bins=None, dropna=True,即默认会将结果倒序排序
s = pd.Series(list('abaefb')) s_count = s.value_counts() print(s) print(s_count,type(s_count)) # 0 a # 1 b # 2 a # 3 e # 4 f # 5 b # dtype: object # a 2 # b 2 # f 1 # e 1 # dtype: int64 <class 'pandas.core.series.Series'>
Seris的值计数
成员判断
isin([ ]),成员要使用中括号括起来,判断每个元素是否在中括号的元素中,生成的结果为布尔型的Seris或DataFrame 【适用于Seris和DataFrame】
# s = pd.Series(list('abced')) # df = pd.DataFrame(np.arange(6).reshape(2,3),columns=['a','b','c']) # print(s.isin(['a','b'])) # print(df.isin([1,2])) # 0 True # 1 True # 2 False # 3 False # 4 False # dtype: bool # a b c # 0 False True True # 1 False False False
成员判断
转载于:https://www.cnblogs.com/Forever77/p/11259146.html
pandas之数值计算与统计相关推荐
- pandas数据框,统计某列或者某行数据元素的个数
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/sinat_38893241/artic ...
- pandas 常用的数学统计方法 mad()
pandas 常用的数学统计方法 mad() 1.定义:根据平均值计算平均绝对距离差. 2.示例: import pandas as pdstudent_info = pd.read_csv(&quo ...
- Pandas数据分析—groupby分组统计
13.Pandas中groupby分组统计 文章目录 13.Pandas中groupby分组统计 前言 一.分组使用聚合函数做数据统计 1.准备数据 二.遍历groupby的结果理解执行流程 三.实例 ...
- pandas(四) -- 数值计算
数值计算 df = pd.DataFrame({'key1':[4,5,3,np.nan,2],'key2':[1,2,np.nan,4,5],'key3':[1,2,3,'j','k']},inde ...
- Pandas高级教程之:统计方法
文章目录 简介 变动百分百 Covariance协方差 Correlation相关系数 rank等级 简介 数据分析中经常会用到很多统计类的方法,本文将会介绍Pandas中使用到的统计方法. 变动百分 ...
- pandas基础(part3)--描述性统计
学习笔记,这个笔记以例子为主. 开发工具:Spyder 文章目录 numpy描述性统计 Pandas描述性统计 numpy描述性统计 数值型数据的描述性统计,主要包括了计算数值型数据的完整情况.最小值 ...
- Python+pandas读取Excel文件统计最受欢迎的前3位演员
推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社,2018.8出版,2021.3第11次印刷 图书详情: 配套资源: 用书教师可 ...
- Pandas操作Excel,统计pass/fail的个数
导入EXCEL文件: pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None) read_excel和read_csv ...
- Pingouin: 基于pandas和numpy的统计包
Python网络爬虫与文本数据分析 pingouin是基于Pandas和numpy开发的Python3统计包.主要统计功能有 方差分析 多元线性回归 中介效应分析 卡方检验 Q-Q图 贝叶斯因子 信效 ...
最新文章
- 如何计算递归算法的时间复杂度
- mxnet is not presented
- 网页里显示访问的那台服务器,在web服务器中把网页放在那里,才能被访问
- Blackey win10 + python3.6 + VSCode + tensorflow-gpu + keras + cuda8 + cuDN6N环境配置(转载)
- FckEditor的安装与设置
- Java和WebSocket开发网页聊天室
- php curl 获取 邮箱通讯录 sns(hotmail)
- trackingmore快递查询平台_快递物流服务再升级!寄快递更便捷,看看都有哪些平台...
- windows下boost库的基本使用方法
- php正则表达式经典实例,php半小时精通正则表达式
- Java开源测试工具
- 台式linux系统安装,LINUX安装方法
- 云服务器部署 Web 项目
- 复杂网络是怎么应用于神经网络上
- python中表示类的公有成员_在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员。...
- TS 36.211 V12.0.0-上行(1)-时隙结构和物理资源
- 深度学习的趣味app简单优化(适合新手)
- rap 接口管理 java_GitHub - ClassJava/rap2-delos: 阿里妈妈前端团队出品的开源接口管理工具RAP第二代...
- C++的几种char类型
- linux shell中实现循环日期和月份