Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Pandas函数使用-nlargest-nsmallest

Pandas函数使用-nlargest-nsmallest

作者头像
皮大大
发布于 2023-08-25 03:41:32
发布于 2023-08-25 03:41:32
27300
代码可运行
举报
运行总次数:0
代码可运行

nsmallest和nlargest的使用

本文介绍两个函数的使用:nsmallest和nlargest。

官网地址:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.nsmallest.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DataFrame.nsmallest(
    n,  # int类型
    columns,  # 字段名
    keep='first'  # 重复值处理;{‘first’, ‘last’, ‘all’}, default ‘first’
   )

模拟数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
import numpy as np
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = pd.DataFrame({"name":["xiaosun","zhoujuan","xiaozhang","wangfeng","xiaoming","zhangjun"],
                   "score":[100,128,100,150,100,145],
                   "age":[21,25,23,21,25,25],
                   "height":[1.75,1.8,1.77,1.8,1.9,1.71]
                  })
df

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

1

zhoujuan

128

25

1.80

2

xiaozhang

100

23

1.77

3

wangfeng

150

21

1.80

4

xiaoming

100

25

1.90

5

zhangjun

145

25

1.71

nsmallest

默认情况

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nsmallest(2, "score")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

2

xiaozhang

100

23

1.77

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nsmallest(4, "score")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

2

xiaozhang

100

23

1.77

4

xiaoming

100

25

1.90

1

zhoujuan

128

25

1.80

可以看到默认情况,重复值也会多次计数。

参数keep

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 同上结果,默认first

df.nsmallest(4, "score", keep="first")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

2

xiaozhang

100

23

1.77

4

xiaoming

100

25

1.90

1

zhoujuan

128

25

1.80

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nsmallest(4, "score", keep="last")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

4

xiaoming

100

25

1.90

2

xiaozhang

100

23

1.77

0

xiaosun

100

21

1.75

1

zhoujuan

128

25

1.80

排序的顺序发生了变化,从索引号最大的4开始;

如何理解keep=“all”?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nsmallest(2, "score")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

2

xiaozhang

100

23

1.77

当keep="all"会把全部的信息显示出来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nsmallest(2, "score", keep="all")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

2

xiaozhang

100

23

1.77

4

xiaoming

100

25

1.90

多个字段取值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nsmallest(4,["age","height"])

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

3

wangfeng

150

21

1.80

2

xiaozhang

100

23

1.77

5

zhangjun

145

25

1.71

nlargest

该函数是降序排列

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.nlargest.html#pandas.DataFrame.nlargest

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DataFrame.nlargest(
    n,
    columns,
    keep='first'  # {‘first’, ‘last’, ‘all’}, default ‘first’
    )
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nlargest(3,"score")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

3

wangfeng

150

21

1.80

5

zhangjun

145

25

1.71

1

zhoujuan

128

25

1.80

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nlargest(3,"age")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

1

zhoujuan

128

25

1.80

4

xiaoming

100

25

1.90

5

zhangjun

145

25

1.71

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nlargest(2,"age",keep="first")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

1

zhoujuan

128

25

1.8

4

xiaoming

100

25

1.9

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nlargest(2,"age",keep="last")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

5

zhangjun

145

25

1.71

4

xiaoming

100

25

1.90

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.nlargest(2,"age",keep="all")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

1

zhoujuan

128

25

1.80

4

xiaoming

100

25

1.90

5

zhangjun

145

25

1.71

nlargest + drop_duplicates

实现需求:找出年龄age最大的前2位;如果相同年龄,取出一个即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

1

zhoujuan

128

25

1.80

2

xiaozhang

100

23

1.77

3

wangfeng

150

21

1.80

4

xiaoming

100

25

1.90

5

zhangjun

145

25

1.71

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df["age"].value_counts()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
25    3
21    2
23    1
Name: age, dtype: int64

年龄最大为25,且有3位;根据age去重:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df1 = df.drop_duplicates(subset=["age"], keep="first")
df1

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

0

xiaosun

100

21

1.75

1

zhoujuan

128

25

1.80

2

xiaozhang

100

23

1.77

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df1.nlargest(2,"age")

.dataframe tbody tr th:only-of-type { vertical-align: middle; } <pre><code>.dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </code></pre>

name

score

age

height

1

zhoujuan

128

25

1.80

2

xiaozhang

100

23

1.77

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-8-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Excel编程周末速成班第21课:一个用户窗体示例
引言:这是在知识星球App的完美Excel社群中发表的Excel VBA编程系列文章中的一篇,使用一个示例来讲解用户窗体的基础应用。
fanjy
2021/01/20
6.4K0
Excel编程周末速成班第21课:一个用户窗体示例
AutoHotkey 通过 COM 操作 Excel 文档
最近真的是跟电子表格干上了。 还有原来金士顿的终身质保不是噱头,原来真的可以。最近干坏了一条1600内存,大概5年以前的。本来打算咸鱼淘一个,价格出奇的不合适,当地又没有总代,所以通过400客服给了一个河南总代的电话,寄过去代保就可以了。大概历时一个月左右顺丰包邮寄回。撒花赞一下
怪兽
2022/10/04
1.9K0
吐槽下Excel的十大不规范使用问题
太多的人觉得每个月一个表格存放数据,一年12个月,一个工作薄文件里放12个工作表,然后还有大量的插件批量生成工作表,批量重命名工作表、工作表排序等一系列的功能来辅助完成这些提速性工作。
Excel催化剂
2021/08/19
1.3K0
Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
官方文档:https://xlrd.readthedocs.io/en/latest/
Python小二
2020/09/08
7.8K0
Python办公自动化之Excel做表自动化:全网最全,看这一篇就够了!
Excel表格的35招必学秘技[配图]
一、让数据按需排序   如果你要将员工按其所在的部门进行排序,这些部门名称既的有关信息不是按拼音顺序,也不是按笔画顺序,怎么办?可采用自定义序列来排序。   1.执行“格式→选项”命令,打开“选项”
ytkah
2018/03/06
7.8K0
Excel表格的35招必学秘技[配图]
技巧:Excel用得好,天天没烦恼
分析公司DarkHorse Analytics 从美国劳工统计处获得数据,并制作了这张二十四小时会唿吸的地图,显示曼哈顿的工作与在宅人口。
IT阅读排行榜
2018/08/16
2K0
技巧:Excel用得好,天天没烦恼
用 Python 帮运营妹纸快速搞定 Excel 文档
Microsoft Office 被广泛用于商务和运营分析中, 其中 Excel 尤其受欢迎。Excel 可以用于存储表格数据、创建报告、图形趋势等。在深入研究用 Python 处理 Excel 文档之前,让我们先了解一些基本术语:
章鱼猫先生
2021/10/15
4.7K0
用 Python 帮运营妹纸快速搞定 Excel 文档
EXCEL VBA语句集300
        定制模块行为 (1) Option Explicit ‘强制对模块内所有变量进行声明 Option Private Module ‘标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示  Option Compare Text ‘字符串不区分大小写  Option Base 1 ‘指定数组的第一个下标为1 (2) On Error Resume Next ‘忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler ‘当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 ‘恢复正常的错误提示 (5) Application.DisplayAlerts=False ‘在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False ‘关闭屏幕刷新 Application.ScreenUpdating=True ‘打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled ‘禁用Ctrl+Break中止宏运行的功能  工作簿 (8) Workbooks.Add() ‘创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate ‘激活名为book1的工作簿 (10) ThisWorkbook.Save ‘保存工作簿 (11) ThisWorkbook.close ‘关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ‘获取活动工作薄中工作表数 (13) ActiveWorkbook.name ‘返回活动工作薄的名称 (14) ThisWorkbook.Name ‘返回当前工作簿名称 ThisWorkbook.FullName ‘返回当前工作簿路径和名称 (15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小 (16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列 (17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化  工作表 (18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数 (19) Rows.Count ‘获取工作表的行数(注:考虑向前兼容性) (20) Sheets(Sheet1).Name= “Sum” ‘将Sheet1命名为Sum (21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) ‘添加一个新工作表在第一工作表前 (22) ActiveSheet.Move After:=ActiveWorkbook. _ Sheets(ActiveWorkbook.Sheets.Count) ‘将当前工作表移至工作表的最后 (23) Worksheets(Array(“sheet1”,”sheet2”)).Select ‘同时选择工作表1和工作表2 (24) Sheets(“sheet1”).Delete或 Sheets(1).Delete ‘删除工作表1 (25) ActiveWorkbook.Sheets(i).Name ‘获取工作表i的名称 (26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines ‘切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮 (27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切换工作表中的行列边框显示 (28) ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式 (29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接 (30) ActiveSheet.PageSetup.Orientation=xlLandscape 或ActiveSheet.PageSetup.Orientation=2 ‘将页面设置更改为横向 (31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径 ActiveSheet.PageSetup.Le
Tony老师
2020/03/05
2.1K0
2022年最新Python大数据之Excel基础
•此时,B2单元格为被引用单元格,E2单元格为引用单元格,被引用单元格修改,引用单元格同样变化。
Maynor
2022/09/21
8.4K0
2022年最新Python大数据之Excel基础
office相关操作
选中不冻的一行的下一行,在视图中打开冻结窗格,即可让上面的内容一直显示,还可以使用拆分功能
用户6841540
2024/08/02
2780
不吹不黑!Python办公自动化,全网最全整理!
官方文档:https://xlrd.readthedocs.io/en/latest/
释然IT杂谈
2023/08/18
1.5K0
不吹不黑!Python办公自动化,全网最全整理!
10、借助POI实现Java生成并打印excel报表(1)
该文章介绍了如何利用Excel表格进行数据分析。文章首先介绍了如何导入Excel表格,然后介绍了如何使用VLOOKUP函数和IF函数对数据进行分析和处理。接着,文章介绍了如何使用Excel表格进行数据可视化,包括创建柱状图和折线图。最后,文章介绍了如何使用Excel表格进行数据导出和打印。
YGingko
2017/12/28
5.4K0
ChatGPT Excel 大师
欢迎来到 Excel 掌握的变革之旅,在这里,尖端技术和永恒专业知识在“ChatGPT Excel 掌握:释放专家技巧和窍门的力量”中融合。在当今快节奏的环境中,Excel 仍然是各行业专业人士的必备工具,而借助 ChatGPT 的融入,其潜力已经超出想象。
ApacheCN_飞龙
2024/05/24
2650
最快速的寻路算法 Jump Point Search
作者:runzhiwang,腾讯 TEG 后台开发工程师 本文介绍一种跳点搜索算法 JPS 以及其四个优化算法,其寻路速度最快可是 A*算法的 273 倍。文中的 JPS-Bit 和 JPS-BitPrune 都支持动态阻挡。 1.引言 寻路算法用途众多,例如在游戏和地图中。A*算法已经众所周知,对于其优化也是层出不穷,然而性能并没有取得突破性进展。本文介绍 JPS 的效率、多线程、内存、路径优化算法。为了测试搜索算法的优化性能,实验中设置游戏场景使得起点和终点差距 200 个格子,需要寻路 1000
腾讯技术工程官方号
2020/11/16
3.6K0
Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格
Excel 是一个流行且功能强大的 Windows 电子表格应用。openpyxl模块允许您的 Python 程序读取和修改 Excel 电子表格文件。例如,您可能有从一个电子表格中复制某些数据并粘贴到另一个电子表格中的枯燥任务。或者,您可能必须遍历数千行,然后只挑选出其中的一小部分,根据某些标准进行小的编辑。或者你可能不得不查看数百份部门预算的电子表格,寻找任何赤字。这些正是 Python 可以为您完成的那种枯燥、无需动脑的电子表格任务。
ApacheCN_飞龙
2023/04/04
18.6K0
Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格
Vba菜鸟教程[通俗易懂]
官方文档:https://docs.microsoft.com/zh-cn/office/vba/api/overview/language-reference 代码完成后:工具-vbaproject属性-保护-查看时锁定-密码
全栈程序员站长
2022/09/05
17.5K0
Vba菜鸟教程[通俗易懂]
Python 自动化指南(繁琐工作自动化)第二版:十四、使用谷歌表格
您可以通过打开一个新的终端窗口并运行pip install --user ezsheets来安装 EZSheets。作为安装的一部分,EZSheets 还将安装google-api-python-client、google-auth-httplib2和模块。这些模块允许你的程序登录到 Google 的服务器并发出 API 请求。EZSheets 处理与这些模块的交互,所以您不需要关心它们如何工作。
ApacheCN_飞龙
2023/04/04
8.8K0
Python 自动化指南(繁琐工作自动化)第二版:十四、使用谷歌表格
Excel转表工具(xresloader)的新验证器(验证外部Excel和文本数据,唯一性和自定义规则)
xresloader 是一组用于把Excel数据结构化并导出为程序可读的数据文件的导表工具集。它包含了一系列跨平台的工具、协议描述和数据读取代码。
owent
2023/10/21
4050
DAX 2 - 第一章 什么是 DAX
本文来自社区伙伴对《DAX 权威指南(第二版)》的学习笔记,有问题可以留言或联系BI佐罗修改,感谢你的支持。
BI佐罗
2020/04/27
4.8K0
java:POI导出excel
POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1、maven中先添加依赖项 1 <dependency> 2 <groupId>org.apache.poi</groupId> 3 <artifactId>poi</artifactId> 4 <version>3.11</version> 5 </dependency> 2、
菩提树下的杨过
2018/01/19
3K0
java:POI导出excel
推荐阅读
相关推荐
Excel编程周末速成班第21课:一个用户窗体示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验