数值计算与统计

对于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之数值计算与统计相关推荐

  1. pandas数据框,统计某列或者某行数据元素的个数

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/sinat_38893241/artic ...

  2. pandas 常用的数学统计方法 mad()

    pandas 常用的数学统计方法 mad() 1.定义:根据平均值计算平均绝对距离差. 2.示例: import pandas as pdstudent_info = pd.read_csv(&quo ...

  3. Pandas数据分析—groupby分组统计

    13.Pandas中groupby分组统计 文章目录 13.Pandas中groupby分组统计 前言 一.分组使用聚合函数做数据统计 1.准备数据 二.遍历groupby的结果理解执行流程 三.实例 ...

  4. 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 ...

  5. Pandas高级教程之:统计方法

    文章目录 简介 变动百分百 Covariance协方差 Correlation相关系数 rank等级 简介 数据分析中经常会用到很多统计类的方法,本文将会介绍Pandas中使用到的统计方法. 变动百分 ...

  6. pandas基础(part3)--描述性统计

    学习笔记,这个笔记以例子为主. 开发工具:Spyder 文章目录 numpy描述性统计 Pandas描述性统计 numpy描述性统计 数值型数据的描述性统计,主要包括了计算数值型数据的完整情况.最小值 ...

  7. Python+pandas读取Excel文件统计最受欢迎的前3位演员

    推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社,2018.8出版,2021.3第11次印刷 图书详情: 配套资源: 用书教师可 ...

  8. Pandas操作Excel,统计pass/fail的个数

    导入EXCEL文件: pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None) read_excel和read_csv ...

  9. Pingouin: 基于pandas和numpy的统计包

    Python网络爬虫与文本数据分析 pingouin是基于Pandas和numpy开发的Python3统计包.主要统计功能有 方差分析 多元线性回归 中介效应分析 卡方检验 Q-Q图 贝叶斯因子 信效 ...

最新文章

  1. 如何计算递归算法的时间复杂度
  2. mxnet is not presented
  3. 网页里显示访问的那台服务器,在web服务器中把网页放在那里,才能被访问
  4. Blackey win10 + python3.6 + VSCode + tensorflow-gpu + keras + cuda8 + cuDN6N环境配置(转载)
  5. FckEditor的安装与设置
  6. Java和WebSocket开发网页聊天室
  7. php curl 获取 邮箱通讯录 sns(hotmail)
  8. trackingmore快递查询平台_快递物流服务再升级!寄快递更便捷,看看都有哪些平台...
  9. windows下boost库的基本使用方法
  10. php正则表达式经典实例,php半小时精通正则表达式
  11. Java开源测试工具
  12. 台式linux系统安装,LINUX安装方法
  13. 云服务器部署 Web 项目
  14. 复杂网络是怎么应用于神经网络上
  15. python中表示类的公有成员_在Python中定义类时,如果某个成员名称前有2个下划线则表示是私有成员。...
  16. TS 36.211 V12.0.0-上行(1)-时隙结构和物理资源
  17. 深度学习的趣味app简单优化(适合新手)
  18. rap 接口管理 java_GitHub - ClassJava/rap2-delos: 阿里妈妈前端团队出品的开源接口管理工具RAP第二代...
  19. C++的几种char类型
  20. linux shell中实现循环日期和月份

热门文章

  1. aspnetcore源码学习(一)
  2. dev中文本框等获取焦点事件
  3. UML 中extend和include的区别
  4. [No0000B0]ReSharper操作指南1/16-入门与简介
  5. Android App 的主角:Activity
  6. [设计模式]State模式
  7. 如何使用阿里云云解析API实现动态域名解析,搭建私有服务器
  8. SqlHelper模板
  9. SQLServer 优化SQL语句 in 和not in的替代方案
  10. rs.open select * from bbs,conn,1,1 参数说明