每日一题13:Pandas:方法链

一、每日一题 

 ;::

解答:

import pandas as pddef findHeavyAnimals(animals: pd.DataFrame) -> pd.DataFrame:heavy_animals = animals[animals['weight'] > 100].sort_values(by='weight', ascending=False)result = heavy_animals[['name']]return result

题源:Leetcode

 二、总结

 本题用到了布尔索引以及排序函数。

1.布尔索引

布尔索引是Pandas库中一种强大的功能,它允许你根据条件逻辑直接从DataFrame或Series中选择数据子集。这种索引方式基于一个布尔数组,数组中的每个元素对应DataFrame/Series中的一个元素,值为True表示选择该元素,False则不选择。

基本概念

在Pandas中,当你对一个DataFrame或Series应用一个布尔条件时,Pandas会自动将这个条件应用于数据结构的每个元素,并生成一个相同形状的布尔数组。然后,你可以直接用这个布尔数组作为索引来选取满足条件的行或列。

应用场景

布尔索引常用于以下几种场景:

  1. 筛选特定值:例如,选择所有价格大于某个阈值的商品。
  2. 过滤缺失数据:通过检查是否为NaN来去除含有缺失值的行或列。
  3. 复合条件:结合多个条件进行复杂筛选,如同时满足年龄和收入两个条件的人群。
  4. 基于其他列的值:利用一个或多个列的值作为筛选依据。
实例:
import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],'Math': [88, 95, 70, 92, 85],'English': [85, 80, 90, 88, 92]}
scores = pd.DataFrame(data)# 选择数学成绩超过90分的学生记录:
high_scores = scores[scores['Math'] > 90]
print(high_scores)# 选择数学和英语成绩都超过85分的学生:
both_high = scores[(scores['Math'] > 85) & (scores['English'] > 85)]
print(both_high)# 选择数学成绩没有达到80分的学生:
low_math_scores = scores[scores['Math'] < 80]
print(low_math_scores)
2.sort_values()排序 

sort_values() 是 Pandas 库中一个非常实用的函数,用于对 DataFrame 或 Series 中的数据按指定列或行的值进行排序。这个函数提供了丰富的选项来控制排序的方式,包括升序或降序、处理缺失值的位置等。下面是 sort_values() 函数的基本用法和参数说明:

基本用法:
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, 
kind='quicksort', na_position='last', ignore_index=False, key=None)
参数说明:
  • by:这是排序的主要参数,可以是单个列名(字符串),或者是一个列名的列表,用于多列排序。列名也可以是索引级别,用于对MultiIndex的排序。

  • axis:指定排序的轴,接受 0'index' 表示按列排序(默认),1'columns' 表示按行排序。

  • ascending:确定排序的顺序,可以是布尔值(默认为 True 表示升序,False 表示降序),或者是一个布尔值的列表,用于多列排序时分别指定每列的排序方向。

  • inplace:如果设置为 True,则会就地排序DataFrame,不返回新的DataFrame实例(默认为 False)。

  • kind:排序算法,可选的排序类型有 'quicksort', 'mergesort', 'heapsort' 等,不同的算法会影响排序的性能(默认为 'quicksort')。

  • na_position:决定缺失值(NaN)的位置,可选 'first''last',分别表示将缺失值排在最前或最后(默认为 'last')。

  • ignore_index:如果设置为 True,则在返回的DataFrame中重置索引(默认为 False)。

  • key:这是一个可选参数,可以是一个函数或者函数列表,用于在排序前对值进行预处理。

实例:
import pandas as pddata = {'name': ['Alice', 'Bob', 'Charlie', 'David'],'age': [24, 30, 35, 28],'score': [88, 95, 90, 85]}
df = pd.DataFrame(data)# 升序排序 age 列
df_sorted = df.sort_values(by='age')# 降序排序 score 列
df_sorted_desc = df.sort_values(by='score', ascending=False)# 按多列排序,先按 age 升序,再按 score 降序
df_multi_sorted = df.sort_values(by=['age', 'score'], ascending=[True, False])

 官方文档

2024.5.16 

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

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

相关文章

小红书“脆皮”用户健康研究报告

人均脆皮、血脉觉醒、爆肝打工、脱发危机……各式各样的健康议题不断被推上生活舞台&#xff0c;年轻人纷纷自嘲&#xff1a;“20多岁的年纪&#xff0c;却有了60多岁的身体”。 近年&#xff0c;大健康行业欣欣向荣&#xff0c;小红书成为大众分享健康生活的聚集地&#xff0c…

yolov8使用与训练步骤

第一&#xff1a;安装miniconda 网址&#xff1a;Index of /anaconda/miniconda/ 登录网址后 在网页按ctrF 输入&#xff1a;搜py38 Miniconda3-py38_22.11.1-1-Windows-x86_64.exe 52.5 MiB 2022-12-23 07:57 下载进行安装 安装过程中记得加环境变量这个项。 第二…

[AI开发配环境]jupyter notebook远程连接ssh

照这个操作&#xff1a; https://blog.csdn.net/wuqrcn/article/details/135512396 步骤 安装并生成配置文件 注意&#xff0c;在base环境中安装&#xff0c;这样在其他所有环境中都能用&#xff0c;到时候选环境即可。 pip install jupyter notebook # 安装jupyter notebo…

WPF 鼠标拖拽平移

效果 xaml <ScrollViewer x:Name"scrollViewer" HorizontalScrollBarVisibility"Hidden" VerticalScrollBarVisibility"Disabled" Background"#FFF1ADAD"PreviewMouseDown"ScrollViewer_OnPreviewMouseDown"PreviewMou…

2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现&#xff1a; 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性&#xff0c;并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…

现代加密技术(对称和非对称加密)

1.分类 现代加密技术&#xff1a;对称和非对称加密&#xff0c;对称加密即共享密钥&#xff0c;非对称加密是公钥加密算法。 2.基础总结 AES是什么算法&#xff1f; 分组加密算法&#xff0c;对称加密算法AES的分组长度是&#xff1f;固定128位AES密钥长度是多少&#xff1f;支…

(五)Spring教程——Spring IoC容器(上)

在Spring框架中&#xff0c;Bean的实例化和组装都是IoC容器配置元数据完成的。Spring框架提供的容器主要是基于BeanFactory和ApplicationContext两个接口&#xff0c;一种是实现BeanFactory接口的简单容器&#xff0c;另一种是实现ApplicationContext接口的高级容器。 BeanFact…

Qwen学习笔记3:Qwen模型调用外部API实现模型增强(openai的形式)

前言 本文记录了使用本地部署的Qwen模型&#xff0c;调用外部API实现模型的功能增强&#xff0c;非常的易用&#xff0c;大家用于开发自己的应用&#xff0c;只需要作简单的修改就可以进行使用了。 本文的代码来源视频教程&#xff1a; Qwen大模型变强了&#xff0c;通过API…

CTFshow misc

第一题1 打开图片直接就是flag 第二题0 放入010发现文件头有png 更换后缀 获得flag 第三题1 下载之后发现是bpg后缀 用在线工具转换为png获得flag 第四题 0 把六个文件后缀都改为png即可获得flag

Python 海龟画图(Turtle)命令大全

移动和绘制 forward() | fd() 使用语法&#xff1a; ​​turtle.forward(距离)​​ ​​turtle.fd(距离)​​ 参数说明: 距离 一个数字 (整数 或者 浮点) &#xff08;注&#xff1a;单位是像素&#xff09; 代码示例&#xff1a; import turtle turtle.forward(200) …

嵌入式开发十五:STM32中断系统

STM32 中断非常强大&#xff0c;几乎每个外设都可以产生中断&#xff0c;因此这里我们单独来介绍它&#xff0c;为后面介绍外设中断做铺垫。 目录 一、中断的介绍 1.1 中断的概念 1.2 中断优先级: 1.3 中断的嵌套 1.4 内部中断和外部中断 1.5 中断响应和事件响应 1.6 …

【介绍下JSON,JSON是什么?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…