文章目录
- 一、导入库
- 二、构建数据集 dataframe
- 三、小案例
* - 3.1 filter + isin
- 3.2 map
- 3.3 map + 自定义函数
- 3.4 apply
- 3.5 apply + 自定义函数
- 3.6 query
- 3.7 eval
- 3.8 更简洁
一、导入库
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]
- *总结:经过本次小案例,大家会对数据查询/筛选有更进一步的认识,但还需要多多练习、总结经验
Original: https://blog.csdn.net/small__roc/article/details/123093932
Author: 数据分析小鹏友
Title: python dataframe 数据筛选/查询 小案例
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/740000/
转载文章受原作者版权保护。转载请注明原作者出处!