python - pandas常用计算函数

news2024/11/27 22:44:02

文中所用数据集有需要的可以私聊我获取

学习目标 

  • 知道排序函数nlargest、nsmallest和sort_values的用法

  • 知道Pandas中求和、计数、相关性值、最小、最大、平均数、标准偏差、分位数的函数使用

  • 1 排序函数

    • 导包并加载数据集

      import pandas as pd
      ​
      # 加载csv数据, 返回df对象
      df = pd.read_csv('../data/LJdata.csv')
      print(df.head())
      # 获取前10条数据
      df2 = df.head(10)
      print(df2)
      ​
      # 输出结果如下
               区域          地址    户型  面积  价格  朝向    更新时间  看房人数
      0    燕莎租房        新源街  2室1厅    50  5800    南  2017.07.21        26
      1    望京租房      澳洲康都  2室1厅    79  7800    东  2017.07.23        33
      2  广安门租房      远见名苑  2室1厅    86  8000    东  2017.07.20        34
      3  天通苑租房  天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
      4  团结湖租房    团结湖北口  2室1厅    63  6400    南  2017.07.26        30
               区域            地址    户型  面积  价格  朝向    更新时间  看房人数
      0    燕莎租房          新源街  2室1厅    50  5800    南  2017.07.21        26
      1    望京租房        澳洲康都  2室1厅    79  7800    东  2017.07.23        33
      2  广安门租房        远见名苑  2室1厅    86  8000    东  2017.07.20        34
      3  天通苑租房    天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
      4  团结湖租房      团结湖北口  2室1厅    63  6400    南  2017.07.26        30
      5  回龙观租房          龙华园  1室1厅    58  4000    南  2017.07.23        61
      6    北苑租房          筑华年  3室1厅    89  7500    南  2017.07.25        29
      7    马甸租房          月季园  2室1厅    53  6000    南  2017.07.16        26
      8  小西天租房        今典花园  2室1厅    73  8500    西  2017.07.23        44
      9    北苑租房  北苑家园绣菊园  2室1厅    82  5300  东南  2017.07.26        30

    1.1 nlargest和nsmallest函数

    通过 df.nlargest(n, 列名) 方法实现对指定列的值由大到小排序, 返回前n行数据

    通过 df.nsmallest(n, 列名) 方法实现对指定列的值由小到大排序, 返回前n行数据

    n: 整数, n行数据, 默认为5

    列名: 指定排序的列名

    • 用nlargest方法,选出价格最高的5条房源信息

      # df.nlargest(n, '列名') # 根据指定列的值由大到小排列,返回n行数据
      print(df2.nlargest(5, '价格'))
      ​
      # 输出结果如下
               区域        地址    户型  面积  价格 朝向    更新时间  看房人数
      8  小西天租房    今典花园  2室1厅    73  8500   西  2017.07.23        44
      2  广安门租房    远见名苑  2室1厅    86  8000   东  2017.07.20        34
      1    望京租房    澳洲康都  2室1厅    79  7800   东  2017.07.23        33
      6    北苑租房      筑华年  3室1厅    89  7500   南  2017.07.25        29
      4  团结湖租房  团结湖北口  2室1厅    63  6400   南  2017.07.26        30

    • 用nsmallest方法, 选出看房人数最少的5条房源信息

      # df.nsmallest(n, '列名') # 根据指定列的值由小到大排列,返回n行数据
      print(df2.nsmallest(5, '看房人数'))
      ​
      # 输出结果如下
               区域          地址    户型  面积  价格  朝向    更新时间  看房人数
      0    燕莎租房        新源街  2室1厅    50  5800    南  2017.07.21        26
      7    马甸租房        月季园  2室1厅    53  6000    南  2017.07.16        26
      6    北苑租房        筑华年  3室1厅    89  7500    南  2017.07.25        29
      3  天通苑租房  天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
      4  团结湖租房    团结湖北口  2室1厅    63  6400    南  2017.07.26        30

    1.2 sort_values函数

    通过 df.sort_values(列名列表, ascending=) 方法根据指定列指定排序方式排序

    ascending: True或False, 默认True->升序, 也可以接收布尔值列表, 每列指定排序方式

    • df.sort_values函数可以按照指定的一列或多列的值进行排序

      # 按价格列的数值由小到大进行排序
      print(df2.sort_values(['价格']))
      # 按价格列的数值由大到小进行排序
      print(df2.sort_values(['价格'], ascending=False))
      # 先对看房人数列由小到大排序, 再对价格列由大到小排序
      print(df2.sort_values(['看房人数', '价格'], ascending=[True, False]))
      ​
      # 输出结果如下
               区域            地址    户型  面积  价格  朝向    更新时间  看房人数
      5  回龙观租房          龙华园  1室1厅    58  4000    南  2017.07.23        61
      3  天通苑租房    天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
      9    北苑租房  北苑家园绣菊园  2室1厅    82  5300  东南  2017.07.26        30
      0    燕莎租房          新源街  2室1厅    50  5800    南  2017.07.21        26
      7    马甸租房          月季园  2室1厅    53  6000    南  2017.07.16        26
      4  团结湖租房      团结湖北口  2室1厅    63  6400    南  2017.07.26        30
      6    北苑租房          筑华年  3室1厅    89  7500    南  2017.07.25        29
      1    望京租房        澳洲康都  2室1厅    79  7800    东  2017.07.23        33
      2  广安门租房        远见名苑  2室1厅    86  8000    东  2017.07.20        34
      8  小西天租房        今典花园  2室1厅    73  8500    西  2017.07.23        44
               区域            地址    户型  面积  价格  朝向    更新时间  看房人数
      8  小西天租房        今典花园  2室1厅    73  8500    西  2017.07.23        44
      2  广安门租房        远见名苑  2室1厅    86  8000    东  2017.07.20        34
      1    望京租房        澳洲康都  2室1厅    79  7800    东  2017.07.23        33
      6    北苑租房          筑华年  3室1厅    89  7500    南  2017.07.25        29
      4  团结湖租房      团结湖北口  2室1厅    63  6400    南  2017.07.26        30
      7    马甸租房          月季园  2室1厅    53  6000    南  2017.07.16        26
      0    燕莎租房          新源街  2室1厅    50  5800    南  2017.07.21        26
      3  天通苑租房    天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
      9    北苑租房  北苑家园绣菊园  2室1厅    82  5300  东南  2017.07.26        30
      5  回龙观租房          龙华园  1室1厅    58  4000    南  2017.07.23        61
               区域            地址    户型  面积  价格  朝向    更新时间  看房人数
      7    马甸租房          月季园  2室1厅    53  6000    南  2017.07.16        26
      0    燕莎租房          新源街  2室1厅    50  5800    南  2017.07.21        26
      6    北苑租房          筑华年  3室1厅    89  7500    南  2017.07.25        29
      4  团结湖租房      团结湖北口  2室1厅    63  6400    南  2017.07.26        30
      3  天通苑租房    天通苑北一区  2室1厅   103  5300  东南  2017.07.25        30
      9    北苑租房  北苑家园绣菊园  2室1厅    82  5300  东南  2017.07.26        30
      1    望京租房        澳洲康都  2室1厅    79  7800    东  2017.07.23        33
      2  广安门租房        远见名苑  2室1厅    86  8000    东  2017.07.20        34
      8  小西天租房        今典花园  2室1厅    73  8500    西  2017.07.23        44
      5  回龙观租房          龙华园  1室1厅    58  4000    南  2017.07.23        61

    • Series.sort_valuesDataFrame.sort_values的效果一致,只是无需指定排序依据的列

      print(df2['价格'].sort_values())
      print(df2['价格'].sort_values(ascending=False))
      ​
      # 输出结果如下
      5    4000
      3    5300
      9    5300
      0    5800
      7    6000
      4    6400
      6    7500
      1    7800
      2    8000
      8    8500
      Name: 价格, dtype: int64
      8    8500
      2    8000
      1    7800
      6    7500
      4    6400
      7    6000
      0    5800
      9    5300
      3    5300
      5    4000
      Name: 价格, dtype: int64

    2 常用聚合函数

    常用聚合函数有:

    • corr 相关性

    • min 最小值

    • max 最大值

    • mean 平均值

    • std 标准偏差

    • quantile 分位数

    • sum 求和

    2.1 corr函数计算数值列之间的相关性

    df6 = df[['面积','价格','看房人数']]  # 先获取数字列,因为相关性只能统计数字列
    print(df6.corr())
    ​
    # 输出结果如下
                  面积      价格  看房人数
    面积      1.000000  0.710056 -0.114706
    价格      0.710056  1.000000  0.019457
    看房人数 -0.114706  0.019457  1.000000
    ​
    """
    相关性得分越接近1, 代表正相关性越强; 越接近-1, 代表负相关性越强 自己和自己相关性为1
    面积和价格呈现正相关, 面积越大, 价格越贵
    """

    2.2 min函数计算最小值

    df.min()会返回df中每一列的最小值构成的Series

     
    print(df.min()) # 列出每一列的最小值,有些列的最小值没有意义
    df['价格'].min()  #求出价格之一列的最小值
    ​
    # 输出结果如下
    区域          北苑租房
    地址          今典花园
    户型            1室1厅
    面积                50
    价格              4000
    朝向                东
    更新时间    2017.07.16
    看房人数            26
    dtype: object

    2.3 max函数计算最大值

    max函数计算最大值,用法和min函数的用法一致

     
    print(df.max())
    df['价格'].max()  #求出价格之一列的最大值
    ​
    # 输出结果如下
    区域          马甸租房
    地址            龙华园
    户型            3室1厅
    面积               103
    价格              8500
    朝向                西
    更新时间    2017.07.26
    看房人数            61
    dtype: object

    2.4 mean函数计算平均值

    mean函数计算平均值,用法和min函数的用法一致,但只会对数值类型的数据进行计算

     
    print(df.mean())
    print(df['价格'].mean())
    ​
    # 输出结果如下
    面积          73.6
    价格        6460.0
    看房人数      34.3
    dtype: float64
    6460.0

    2.5 std函数计算标准偏差

    标准偏差:用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。

    标准差=方差开方

    方差=每个值和平均值差值的平方

     
    print(df6.std())
    print(df2['价格'].std())
    ​
    # 输出结果如下
    面积          17.296114
    价格        1445.452640
    看房人数      10.698390
    dtype: float64
    1445.4526396023266

    2.6 quantile函数计算分位数

    • 分位数(Quantile),亦称分位点,常用的有中位数(即二分位数)、四分位数、百分位数等;那什么是分位数呢?我们以中位数为例:通过把一堆数字按大小排序后找出正中间的一个数字作为中位数,如果这一堆数字有偶数个,则中位数不唯一,通常取最中间的两个数值的平均数作为中位数,即二分位数。

    • quantile函数默认返回二分位数;可以通过传入参数来控制返回的四分位数,或其他分位数

     
    # 二分位数(中位数)
    print(df6.quantile())
    print(df6['看房人数'].quantile())
    # 返回四分位数
    print(df6.quantile([0.25, 0.5, 0.75]))
    print(df6['看房人数'].quantile([0.25, 0.5, 0.75]))
    # 返回三分位数
    print(df6.quantile([1 / 3, 2 / 3]))
    print(df6['看房人数'].quantile([1 / 3, 2 / 3]))
    ​
    # 输出结果如下
    面积          76.0
    价格        6200.0
    看房人数      30.0
    Name: 0.5, dtype: float64
    30.0
           面积    价格  看房人数
    0.25  59.25  5425.0     29.25
    0.50  76.00  6200.0     30.00
    0.75  85.00  7725.0     33.75
    0.25    29.25
    0.50    30.00
    0.75    33.75
    Name: 看房人数, dtype: float64
              面积    价格  看房人数
    0.333333  63.0  5800.0      30.0
    0.666667  82.0  7500.0      33.0
    0.333333    30.0
    0.666667    33.0
    Name: 看房人数, dtype: float64

    2.7 sum函数求和

    sum函数计算求和,用法和min函数的用法一致, 数值列求和, 非数值列拼接

    print(df6.sum())
    print(df6['看房人数'].sum())
    ​
    # 输出结果如下
    区域        燕莎租房望京租房广安门租房天通苑租房团结湖租房回龙观租房北苑租房马甸租房小西天租房北苑租房...
    地址        新源街澳洲康都远见名苑天通苑北一区团结湖北口龙华园筑华年月季园今典花园北苑家园绣菊园...
    户型        2室1厅2室1厅2室1厅2室1厅2室1厅1室1厅3室1厅2室1厅2室1厅2室1厅...
    面积                                                      736
    价格                                                    64600
    朝向                                 南东东东南南南南南西东南
    更新时间    2017.07.212017.07.232017.07.202017.07.252017.0...
    看房人数                                                  343
    dtype: object
    343

    2.8 count计算非空数据的个数

     
    # 构造空值
    df2.loc[0, '看房人数'] = None
    print(df2.count())
    print(df2['看房人数'].count())
    ​
    # 输出结果如下
    区域        10
    地址        10
    户型        10
    面积        10
    价格        10
    朝向        10
    更新时间    10
    看房人数     9
    dtype: int64
    9

    总结

    请对下列API 有印象、能找到、能理解、能看懂

  • 排序

    • nlargest函数 由大到小排序获取指定数量的数据

    • nsmallest函数 由小到大排序获取指定数量的数据

    • sort_values函数 按值排序

  • 聚合函数

    • corr函数 相关性计算

    • min函数 计算最小值

    • max函数 计算最大值

    • mean函数 计算平均值

    • std函数 计算标准偏差

    • quantile函数 计算分位数

    • sum函数 计算所有数值的和

    • count函数 计算非空数据的个数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1805035.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

htb-linux-7-cronos-53-dns-nslookup-axfr

nmap DNS服务的枚举 靶机开启了53端口域名服务 枚举DNS服务 - nslookup 使用nslookup工具,设置DNS服务器的地址为10.10.10.13,需要查询10.10.10.13绑定的域名 枚举DNS服务 - axfr 使用dig工具来做区域传输(Zone Transfer)的查询:dig ax…

SpringBoot+Vue免税商品优选购物商城(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 用户商家 功能截图

记一次极其坑爹的 process.waitFor() 卡死问题

项目中有个需求需要截取wav的音频文件 ,网上找了找方法 用java调用ffmpeg 来截取 public static InputStream trimAudio(MultipartFile inputFile, Double startTime, Double endTime,Double volume) throws IOException {File file new File(FileUtil.getTmpDir…

程序猿大战Python——运算符

常见的运算符 目标:了解Python中常见的运算符有哪些? 运算符是用于执行程序代码的操作运算。常见的运算符有: (1)算术运算符:、-、*、/、//、% 、**; (2)赋值运算符&am…

“论边缘计算及应用”必过范文,突击2024软考高项论文

论文真题 边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台(架构),就近提供边缘智能服务。边缘计算与云计算各有所长,云计算擅长全局性、非实时、长周期的大数据处理与分析,能够在…

拯救者Legion Y9000X IRX9 2024(83FD)原装出厂Windows11系统镜像下载

lenovo联想2024款拯救者Y9000X IRX9 笔记本电脑【83FD】OEM预装Win11系统安装包,恢复开箱状态,自带恢复重置还原功能 链接:https://pan.baidu.com/s/1i_sVcnXF4qgsuj02rebe-Q?pwdyefp 提取码:yefp 联想原装WIN11系统自带所有…

Leetcode 力扣 112. 路径总和 (抖音号:708231408)

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点 是指没有子节点…

Git:从配置到合并冲突

目录 1.前言 2.Git的下载与初始化配置 3.Git中新建仓库 4.Git的工作区域和文件状态 5.Git中查看操作和提交记录 6.Git中添加和提交文件 7.Git中回退提交版本 8.Git中查看版本间的差异 9.Git中删除文件 10.Git中忽略指定文件 11.Git中配置SSH密钥 12.Git中关联克隆仓库 13.Git中…

参考——温湿度传感器DHT11驱动_STM32

设备:stm32f407ZGT6 环境:FreeRTOS HAL 一、简介 到网上找DHT11的驱动,但是都无法使用。原因是RTOS环境中,由于多线程,使用循环计数阻塞式的delay_us延时函数就没那么准,且不同设备中delay_us的计数…

ChatGPT Prompt技术全攻略-精通篇:Prompt工程技术的高级应用

系列篇章💥 No.文章1ChatGPT Prompt技术全攻略-入门篇:AI提示工程基础2ChatGPT Prompt技术全攻略-进阶篇:深入Prompt工程技术3ChatGPT Prompt技术全攻略-高级篇:掌握高级Prompt工程技术4ChatGPT Prompt技术全攻略-应用篇&#xf…

USB (2)

USB transaction 以2.0的枚举过程为例。 首先是TOKEN TRANSACTION,其次是DATA TRANSACTION,再次是Handshake Transaction。 上面的SETUP TRANSACTION是TOKEN TRANSACTION的一种。另外三种是OUT, IN, SOF。 在每个TRANSACTION中又包含了3个STAGE&#x…

层次聚类分析星

clc,clear a [73,40,7;60,15,5;61,19,2;34,18,6;67,126,10;91,40,4;101,40,13;81,40,6;88,40,8;122,40,17;102,50,17;87,50,12;110,50,14;164,50,17;40,30,1;76,40,17;118,50,9;160,50,15];[m,n] size(a);d zeros(m); d mandist(a); % mandist 求矩阵列向量组之间的两两…

pxe批量部署linux介绍

1、PXE批量部署的作用及必要性: 1)智能实现操作系统的批量安装(无人值守安装)2)减少管理员工作,提高工作效率3)可以定制操作系统的安装流程a.标准流程定制(ks.cfg)b.自定义流程定制(ks.cfg(%pos…

linux系统——telnet,ssh命令

telent命令用于登录远程主机,监测远程主机端口是否打开,明文传输,安全性较低,后被弃用,改为ssh

『大模型笔记』Transformer的几种高效自注意力(降低计算复杂度的方法)!

Transformer的几种高效自注意力(降低计算复杂度的方法)! 文章目录 一. 快速回顾一下注意力机制二. 有哪些技术可以用来提高注意力的效率1. Sparse attention(1) 算法原理:Strided Attention & Fixed Attention(2) 复杂度分析: O ( N N p ) \mathscr{O}(N\sqrt[p]{N}) O(…

[学习笔记] VFX Silhouette

Part 1 : The interface of Silhouettte (Silhouette的界面介绍) Part 2: The shape divisions and manual roto(形状分区和手动roto工作): roto过程一般使用 b 曲线roto工作需要逐帧工作按Alt可以修改锚点(拖动)和改变锚点平滑…

基于Gabor小波特征提取和PSO-SVM的胃溃疡分类(MATLAB R2018a)

Gabor滤波器是在测不准原则下能够在时域和频域中唯一能取得最佳的联合分辨率函数(测不准原则:是指在时域与频域中都要获得任何的测量精度那是不可能同时实现的,要使时域分辨率有所提高,必须牺牲频域的分辨率,反之亦然&…

Hugging Face系列2:详细剖析Hugging Face网站资源——实战六类开源库

Hugging Face系列2:详细剖析Hugging Face网站资源——实战六类开源库 前言本篇摘要2. Hugging Face开源库2.1 transformers2.1.1 简介2.1.2 实战1. 文本分类2. 图像识别3. 在Pytorch和TensorFlow中使用pipeline 2.2 diffusers2.2.1 简介2.2.2 实战1. 管线2. 模型和调…

【AI大模型】Prompt Engineering

目录 什么是提示工程(Prompt Engineering) Prompt 调优 Prompt 的典型构成 「定义角色」为什么有效? 防止 Prompt 攻击 攻击方式 1:著名的「奶奶漏洞」 攻击方式 2:Prompt 注入 防范措施 1:Prompt 注…

如何从清空的回收站恢复照片

担心如何从清空的回收站中恢复已删除的照片?您删除的文件和文件夹暂时存储在 Windows 回收站中。它使 Windows 用户能够快速恢复意外或故意丢失的项目。但是,为了释放计算机驱动器上的某些空间,有时可能需要清理回收站。 然而,有…