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

文章目录

一、导入库

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))],
    }
)

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

三、小案例

  • 问题:筛选 name 只含两个字的数据
  • 结果应该为:
    python dataframe 数据筛选/查询 小案例

; 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"]

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

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]
  • *总结:经过本次小案例,大家会对数据查询/筛选有更进一步的认识,但还需要多多练习、总结经验

Original: https://blog.csdn.net/small__roc/article/details/123093932
Author: 数据分析小鹏友
Title: python dataframe 数据筛选/查询 小案例

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/740000/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球