从列表中一次性筛选多个指定位置的数据

栏目: Python · 发布时间: 4年前

内容简介: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),第一时间获的最新更新:

从列表中一次性筛选多个指定位置的数据

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解

SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解

陈丰洲 / 电子工业出版社 / 2018-10 / 59.80元

SEM人员在职场打拼的过程中,会遇到一个又一个坑,《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》尝试站在一定的高度,将从业者从专员走向管理岗位过程中可能碰到的问题进行整理,不仅谈竞价推广,也谈基于SEM的营销体系。 《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》包括11章内容,由浅入深地分享SEM的进阶过程。第1章是SEM概述,让读者对SEM有......一起来看看 《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具