首页 > 其他分享 >Pandas常用计算函数

Pandas常用计算函数

时间:2024-09-27 19:51:18浏览次数:10  
标签:租房 常用 函数 26 df2 2017.07 print 看房 Pandas

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函数计算数值列之间的相关性

print(df.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(df2.min())

# 输出结果如下
区域          北苑租房
地址          今典花园
户型            1室1厅
面积                50
价格              4000
朝向                东
更新时间    2017.07.16
看房人数            26
dtype: object

2.3 max函数计算最大值

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

print(df2.max())

# 输出结果如下
区域          马甸租房
地址            龙华园
户型            3室1厅
面积               103
价格              8500
朝向                西
更新时间    2017.07.26
看房人数            61
dtype: object

2.4 mean函数计算平均值

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

print(df2.mean())
print(df2['价格'].mean())

# 输出结果如下
面积          73.6
价格        6460.0
看房人数      34.3
dtype: float64
6460.0

2.5 std函数计算标准偏差

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

标准差=方差开方

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

print(df2.std())
print(df2['价格'].std())

# 输出结果如下
面积          17.296114
价格        1445.452640
看房人数      10.698390
dtype: float64
1445.4526396023266

2.6 quantile函数计算分位数

  • 分位数(Quantile),亦称分位点,常用的有中位数(即二分位数)、四分位数、百分位数等;那什么是分位数呢?我们以中位数为例:通过把一堆数字按大小排序后找出正中间的一个数字作为中位数,如果这一堆数字有偶数个,则中位数不唯一,通常取最中间的两个数值的平均数作为中位数,即二分位数。
  • quantile函数默认返回二分位数;可以通过传入参数来控制返回的四分位数,或其他分位数
# 二分位数
print(df2.quantile())
print(df2['看房人数'].quantile())
# 返回四分位数
print(df2.quantile([0.25, 0.5, 0.75]))
print(df2['看房人数'].quantile([0.25, 0.5, 0.75]))
# 返回三分位数
print(df2.quantile([1 / 3, 2 / 3]))
print(df2['看房人数'].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(df2.sum())
print(df2['看房人数'].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函数 计算非空数据的个数

标签:租房,常用,函数,26,df2,2017.07,print,看房,Pandas
From: https://blog.csdn.net/weixin_54514072/article/details/142601203

相关文章

  • Java中有哪些集合类?常用的几种java集合类总结 详细解读 Java 的集合类
    Java提供了丰富的数据结构选择,用以处理和存储对象,这些对象通过Java的集合类框架(JavaCollectionsFramework)来组织和管理。集合类使得开发者能够更加高效地处理数据,如排序、搜索、迭代等操作。本文将系统地介绍Java的集合类,包括其核心接口、常用实现类以及使用示例。......
  • 信息学奥赛复赛复习05-CSP-J2020-01优秀的拆分-对数函数、自然对数、以2为底的对数、
    PDF文档回复:2024092712020CSP-J题目1优秀的拆分[题目描述]一般来说,一个正整数可以拆分成若干个正整数的和例如,1=1,10=1+2+3+4等。对于正整数n的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,n被分解为了若干个不同的2的正整数次幂。注意,一个数x能......
  • 8,(经典面试题:分组求topN)Python数分之Pandas训练,力扣,1532. 最近的三笔订单
    学习:知识的初次邂逅复习:知识的温故知新练习:知识的实践应用目录一,原题力扣链接二,题干三,建表语句四,分析五,Pandas解答六,验证七,知识点总结一,原题力扣链接.-力扣(LeetCode)二,题干表:Customers+---------------+---------+|ColumnName|Type|+------......
  • 26,【经典大厂面试题】【连续问题的困难题】Python数分之Pandas训练,力扣,2173. 最多连胜
    学习:知识的初次邂逅复习:知识的温故知新练习:知识的实践应用目录一,原题力扣链接二,题干三,建表语句四,分析五,SQL解答六,验证七,知识点总结一,原题力扣链接.-力扣(LeetCode)二,题干表: Matches+-------------+------+|ColumnName|Type|+-------------+-----......
  • STL之vector篇(下)(手撕底层代码,从零实现vector的常用指令,深度剖析并优化其核心代码)
    文章目录1.基本结构与初始化1.1空构造函数的实现与测试1.2带大小和默认值的构造函数1.3使用迭代器范围初始化的构造函数(建议先看完后面的reserve和push_back)1.4拷贝构造函数1.5赋值操作符的实现(深拷贝)1.6析构函数1.7`begin`与`end`迭代器2.容量管理2.1`re......
  • Mysql-常用命令
    库操作:1.创建数据库:createdatabase库名;2.显示数据库:showdatabases;3.删除数据库:dropdatabase库名;4.修改数据库编码:alterdatabase库名charactersetgb2312表操作:1.创建一个表名为:employee,该表中含有id、name、sex、birthday、job字段:createtableemployee(表名)(id......
  • 给Excel 添加正则表达式regexp()函数
    WPS推出了正则表达式函数regex家族,非常好用,必须给其点赞。听说微软在最新版本的Office也要推出,但老版本Office用户就不能使用这个函数,好在用VBA可以自定义一个函数也可以实现的,此函数不仅将三种模式融合到了同一个函数中,同时还支持数组、单元格、文本等多种数据处理'**************......
  • FTP介绍、环境搭建、常用命令以及脚本
    文章目录介绍FTP的主要特点FTP的工作模式服务器部署安装启动配置新增用户客户端lftpsftp(SSHFileTransferProtocol)登陆上传文件下载文件退出查看文件常用脚本介绍FTP(FileTransferProtocol,文件传输协议)是一种用于在网络上进行文件传输的标准网络协议。它......
  • plink.exe 是 PuTTY 工具集中的一个命令行工具,用于通过 SSH(安全外壳协议)进行远程连接
    plink.exe是PuTTY工具集中的一个命令行工具,用于通过SSH(安全外壳协议)进行远程连接。它通常用于在没有图形界面的情况下实现SSH连接,适合脚本和自动化任务。在使用plink.exe时,你可以执行以下操作:连接到远程服务器:通过命令行指定用户名和主机地址。执行远程命令:可以直接在......
  • 在线性坐标系中绘制一次函数图象
    本文记述了用Matplotlib在线性坐标系中绘制一次函数图象的例子。代码主体内容如下:fig,ax=plt.subplots(figsize=(8,8))#1x=np.linspace(-4,4,100)y=2*x+1#2ax.plot(x,y,color='b')x=np.linspace(-9,9,1......