python 函数之 isin() 与 ~isin() DataFrame

1. 生成测试数据集

import random
import pandas as pd

names = ['南宫婉','雅菲','余靖秋','姜立','小舞','胡列娜','比比东','云韵','美杜莎','焰灵姬']
df = pd.DataFrame(
    {
        "name"  :names,
        "age"   :[random.randint(18,25) for i in range(len(names))],
        "height":[round(random.uniform(1.6,1.75),2) for i in range(len(names))],
        "weight":[random.randint(45,50) for i in range(len(names))],
    }
)

在这里插入图片描述

剔除 name 不为[‘云韵’,‘美杜莎’],或age 不为[19,20] 的数据

df2[~(df2['name'].isin(['云韵','美杜莎']) | df2['age'].isin([19,20]))]
Out[13]: 
  name  age  height  weight
1   雅菲   24    1.66      46
2  余靖秋   24    1.67      47
4   小舞   18    1.66      45
5  胡列娜   23    1.73      48

2. isin()

2.1 单一条件筛选

  • 筛选 name 包含[‘云韵’,‘美杜莎’] 的数据
filt = df['name'].isin(['云韵','美杜莎'])
df[filt]

在这里插入图片描述

2.2 多个条件筛选

  • 筛选 name 包含[‘云韵’,‘美杜莎’] 或 最小age
filt_1 = df['name'].isin(['云韵','美杜莎'])
filt_2 = df['age'] == df['age'].min()
df[filt_1 | filt_2]

在这里插入图片描述

3. ~isin()

  • 结果与 isin() 相反
  • 筛选 name 不包含[‘云韵’,‘美杜莎’] 的数据
filt = ~df['name'].isin(['云韵','美杜莎'])
df[filt]

在这里插入图片描述

参考资料

[1] python DataFrame isin() 与 ~isin() 2022.2;
[2] 官方链接

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值