python dataframe 数据筛选/查询 小案例

本文通过实例展示了使用Pandas库在Python中筛选数据的多种方法,包括filter、map、apply、query和eval等函数的运用,帮助读者加深对数据查询和筛选的理解。文章覆盖了基于字符串长度和首字母的筛选操作,旨在提升数据处理能力。

一、导入库

import random
import pinyin
import pandas as pd

二、构建数据集 dataframe

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 只含两个字的数据
  • 结果应该为:
    在这里插入图片描述

3.1 filter + isin

list_ = list(filter(lambda x:len(x)==2,df['name']))
df[df['name'].isin(list_)]

3.2 map

df[df['name'].map(len) == 2]

3.3 map + 自定义函数

  • 既然用到自定义函数,那么我们换个问题:筛选出 name 首字母是 y 的数据
  • 获取中文字母拼音:pinyin.get(“美杜莎”) --> měidùshā
df[df['name'].map(lambda x:pinyin.get(x)[0]) == "y"]

在这里插入图片描述

3.4 apply

  • 同map
df[df['name'].apply(len) == 2]

3.5 apply + 自定义函数

  • 参考 map + 自定义函数
df[df['name'].apply(lambda x:len(x)==2]

3.6 query

df.query("name.str.len()==2")

3.7 eval

df[df.eval("name.str.len()==2")]

3.8 更简洁

df[df.name.str.len()==2]
  • 总结:经过本次小案例,大家会对数据查询/筛选有更进一步的认识,但还需要多多练习、总结经验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值