内容简介:Pandas的DataFrame在筛选列数据的时候,有一个非常方便的用法。假设现在有这样一个DataFrame:运行效果如下图所示:
Pandas的DataFrame在筛选列数据的时候,有一个非常方便的用法。
假设现在有这样一个DataFrame:
import pandas as pd data = [ {'name': 'kingname', 'age': 20, 'salary': 99999}, {'name': 'alice', 'age': 30, 'salary': 99999}, {'name': 'bob', 'age': 10, 'salary': 99999}, {'name': 'cindy', 'age': 40, 'salary': 99999} ] df = pd.DataFrame(data) df 复制代码
运行效果如下图所示:
我要筛选所有 age >= 30
的数据,可以这样写:
df[df['age'] >= 30] 复制代码
运行效果如下图所示:
而这里面的原理,实际上可以使用下面这个代码来解释:
df[[False, True, False, True]] 复制代码
如下图所示:
那么问题来了,我有一个 Python 里面,列表能不能也实现这个功能呢?假设有下面两个列表:
name_list = ['kingname', 'alice', 'bob', 'cindy'] position_list = [True, False, True, False] 复制代码
我想把 position_list
列表中, True
的下标在 name_list
中对应的值都获取下来。
你可能会这样写代码:
name_list = ['kingname', 'alice', 'bob', 'cindy'] position_list = [True, False, True, False] for name, position in zip(name_list, position_list): if position: print(name) 复制代码
运行效果如下图所示:
但实际上,在Python里面有一个现成的函数可以实现这个功能,那就是 itertools.compress()
,其使用方法如下:
from itertools import compress name_list = ['kingname', 'alice', 'bob', 'cindy'] position_list = [True, False, True, False] for name in compress(name_list, position_list): print(name) 复制代码
运行效果如下图所示:
如果这篇文章对你有帮助,请关注我的微信公众号: 未闻Code(ID: itskingname),第一时间获的最新更新:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 一次性搞定 Iconfont
- 一次性能优化实战经历
- JavaScript如何一次性展示几万条数据
- 教你如何让SSH使用一次性密码登陆
- SOLO:一次性预测语义类别和实例掩码
- 31 道 Java 核心面试题,一次性打包送给你
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
解决网页设计一定会遇到的210个问题
2006-4 / 42.00元
如何选择适合、简单、方便、快速的方法来解决您的网页设计问题?不会HTML、JavaScript、CSS也可轻易完成许多网页功能与特效。本书包含上百种HTML、JavaScript、CSS使用应用技巧与盲点解说,包含10个常用表单资料判断函数与特殊技巧,不必修改就可用于任何网页。本书现有的多数网页设计书籍相辅相成,让您事半功倍地完成工作。 许多计算机书籍都是从某个语言或者某个软件的......一起来看看 《解决网页设计一定会遇到的210个问题》 这本书的介绍吧!