python - pandas常用计算函数

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

学习目标 

  • 知道排序函数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.mzph.cn/pingmian/25140.shtml

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

相关文章

VBA excel 表格将多行拆分成多个表格或 文件 或者合并 多个表格

excel 表格 拆分 合并 拆分工作表按行拆分为工作表工作表按行拆分为工作薄 合并操作步骤 拆分 为了将Excel中的数万行数据拆分成多个个每个固定行数的独立工作表,并且保留每个工作表的表头,你可以使用以下VBA脚本。这个脚本会复制表头到每个新的工作表&…

Java案例:找素数

文章目录 题目问题反思代码改进 题目 找素数 判断101-200之间有多少个素数&#xff0c;并输出所有素数 只需要除到 n/2 即可。 算数平方根。&#xff08;j*j<i&#xff09;实际上可以更高效地只除到Math.sqrt(n)&#xff08;或者说Math.sqrt(n) 1为了处理整数除法&#xf…

Web学习_sqli-labs_1~10关

less1-GET-Error based - Single quotes - String &#xff08;基于错误的GET单引号字符型注入&#xff09; 我每次操作都会在Hackbar中&#xff0c;代码都在Hackbar框中&#xff0c;可放大看 有题目知道了是字符型注入&#xff0c;我们先判断表格有几列&#xff0c;可以发现…

Istio_1.17.8安装

项目背景 按照istio官网的命令一路安装下来&#xff0c;安装好的istio版本为目前的最新版本&#xff0c;1.22.0。而我的k8s集群的版本并不支持istio_1.22的版本&#xff0c;导致ingress-gate网关安装不上&#xff0c;再仔细查看istio的发布文档&#xff0c;如果用istio_1.22版本…

屏幕空间反射技术在AI绘画中的作用

在数字艺术和游戏开发的世界中&#xff0c;真实感渲染一直是追求的圣杯。屏幕空间反射&#xff08;Screen Space Reflection&#xff0c;SSR&#xff09;技术作为一种先进的图形处理手段&#xff0c;它通过在屏幕空间内模拟光线的反射来增强场景的真实感和视觉冲击力。随着人工…

【Docker系列】跨平台 Docker 镜像构建:深入理解`--platform`参数

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

如何知道ZIP压缩包解压密码?有哪些解密策略?

我们在生活当中&#xff0c;经常会遇到ZIP压缩包&#xff0c;它们以其高效的文件压缩和方便的传输特性而受到广泛欢迎。然而&#xff0c;有时我们可能会遇到一些带有密码保护的ZIP文件&#xff0c;这时就需要知道解压密码才能访问其中的内容。本文将探讨如何知道ZIP压缩包的解压…

Spring Boot整合Redis通过Zset数据类型+定时任务实现延迟队列

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

stm32最小系统焊接调试总结

stm32最小系统打板后,接下来开始焊接元器件,焊接元器件可以参考立创EDA焊接辅助工具。 图1 焊接辅助助手 焊接准备工具有,焊台,放大镜,元器件,镊子,焊锡膏,锡丝及万用表等。调节焊台温度到350-400摄氏度。焊接顺序是先焊接USB typec接口,5V电源,ldo,ch340,stm32芯片…

【代码审计】star7th/showdoc:v3.2.4 Phar反序列化写webshell

目录 漏洞速览 复现 漏洞速览 微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区 主要就是两步&#xff0c;sql注入拿到用户token&#xff0c;再以用户身份上传恶意phar包打phar反序列化 因为文件上传对用户权限没有限制&#xff0c;故本文对sql注入部分不做探讨。…

机器学习--损失函数

损失函数&#xff08;Loss Function&#xff09;&#xff0c;也称为代价函数&#xff08;Cost Function&#xff09;或误差函数&#xff08;Error Function&#xff09;&#xff0c;是机器学习和统计学中的一个重要概念。它用于量化模型预测值与真实值之间的差异。损失函数的值…

怎么换自己手机的ip地址

在互联网时代&#xff0c;IP地址已经成为了我们数字身份的一部分。无论是浏览网页、下载文件还是进行在线交流&#xff0c;我们的IP地址都在默默发挥着作用。然而&#xff0c;有时出于安全或隐私保护的考虑&#xff0c;我们可能需要更换手机的IP地址。那么&#xff0c;如何轻松…

C#操作MySQL从入门到精通(14)——汇总数据

前言 我们有时候需要对数据库查询的值进行一些处理,比如求平均值等操作,本文就是详细讲解这些用法,本文测试使用的数据库数据如下: 1、求平均值 求所有student_age 列的平均值 string sql = string.Empty; if (radioButton_AVG.Checked) {sql = “select AVG( student_…

Day47 代码随想录打卡|二叉树篇---最大二叉树

题目&#xff08;leecode T654&#xff09;&#xff1a; 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 …

htb-linux-9-sense

nmap web渗透 目录爆破 靶机非常慢 system-users.txt ####Support ticket###Please create the following userusername: Rohit password: company defaults尝试登陆 现在我们知道了一个登陆的用户名&#xff0c;密码据称是公司默认密码。谷歌这个公司名称是pfsense现在用r…

C语言如何判断⽂件的结束?

一、问题 在⽂件中查找匹配的信息时&#xff0c;需要遍历⽂件中的数据信息。在遍历的过程中&#xff0c;如何判断⽂件的指针已经到了⽂件的结尾呢&#xff1f; 二、解答 1. 问题解析 在对⽂件的操作函数中&#xff0c;除了存在读写⽂件的函数&#xff0c;还有⽤于测试⽂件流是…

【Tool】Matlab 数据分析可视化

一、问题描述 近期围绕imu总是出现问题&#xff0c;自己整理了一下将数据可视化的工具 二、imu 类 1. 待处理数据格式 # yaw roll pitch time -2.08131 -0.0741765 0.0200713 121.281000000 -2.08724 -0.0745256 0.0197222 121.301000000 -2.093 -0.075747…

对Java中二维数组的深层认识

首先&#xff0c;在JAVA中&#xff0c;二维数组是一种数组的数组。它可以看作是一个矩阵&#xff0c;通常是由于表示二维数据节后&#xff0c;如表格和网格。 1.声明和初始化二维数组 声明 int[][] arr;初始化 int[][] arrnew int[3][4];或者用花括号嵌套 int[][] arr{{1,…

Python一些小操作

矢量图 from matplotlib_inline import backend_inline backend_inline.set_matplotlib_formats(svg)matplotlib中文问题 import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"]["SimHei"] #设置字体 plt.rcParams["axes.unicode_minus…