专栏首页算法channel2 个数据处理的小功能,非常实用!

2 个数据处理的小功能,非常实用!

df.query 过滤数据

0.25 版本开始支持 query 方法,可读性上又获得大幅提升,类似 sql 查询数据的写法,更加人性化。

下面举例说明,过滤数据常用三种方法。

df = pd.DataFrame({'A':np.random.randint(1,20,(8,)),
                   'B':np.random.randint(1,20,(8,)),
                   'C':np.random.randint(1,20,(8,))})
df

过滤条件:A列值大于其平均值,且 B列值大于 5 的行

方法 1

df[ (df['A'] > df["A"].mean()) & (df['B'] > 5)]

注意,& 前后必须要各自加一对 ()

方法 2

cr1 = df['A'] > df["A"].mean()
cr2 = df['B'] > 5
df[cr1 & cr2]

方法 3

mean = df["A"].mean()
df.query("A > @mean & B > 5")

query 是今天重点提到的,使用语法规则见上,变量前添加 @。这种语法的可读性大家觉得怎么样?

顺便提一下,如果列的名称中间有空格,有一个特别的语法,使用一对 `` 符号来标记列名:

df = pd.DataFrame({'First Name':['Jack','Mary','Mike']})
df.query('`First Name` == \'Jack\'')

以上三种方法得到结果都为:

快速找出最多的分类

首先读入数据:

df = pd.read_csv("IMDB-Movie-Data.csv")
df

1000 行数据,genre 取值的频次统计如下:

vc = df["genre"].value_counts()
vc

打印结果:

Action,Adventure,Sci-Fi       50
Drama                         48
Comedy,Drama,Romance          35
Comedy                        32
Drama,Romance                 31
                              ..
Adventure,Comedy,Fantasy       1
Biography,History,Thriller     1
Action,Horror                  1
Mystery,Thriller,Western       1
Animation,Fantasy              1
Name: genre, Length: 207, dtype: int64

筛选出 top3 的 index:

top_genre = vc[0:3].index
print(top_genre)

打印结果:

Index(['Action,Adventure,Sci-Fi', 'Drama', 'Comedy,Drama,Romance'], dtype='object')

使用得到的 top3 的 index ,结合 isin,选择出相应的 df

df_top = df[df["genre"].isin(top_genre)]
df_top

结果:

本文分享自微信公众号 - Python与机器学习算法频道(alg-channel),作者:zglg

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Pandas 数据分析: 3 种方法实现一个实用小功能

    与时间相关,自然第一感觉便是转化为datetime格式,这里需要注意:需要首先将两列转化为 str 类型。

    double
  • Pandas 4 个小 trick,都很实用!

    对于动辄就几十或几百个 G 的数据,在读取这么大数据时,有没有办法随机选取一小部分数据,然后读入内存,快速了解数据和开展 EDA ?

    double
  • 数据清洗常用的 2 个小 trick

    有特征上百个,根据多个特征筛选 DataFrame 时,如果这么做,可读性不太友好:

    double
  • Pandas入门操作

    俺也想起舞
  • Python中字段抽取、字段拆分、记录抽取

    1、字段抽取 字段抽取是根据已知列数据的开始和结束位置,抽取出新的列 字段截取函数:slice(start,stop) 注意:和数据结构的访问方式一样,开始位置...

    Erin
  • 快速介绍Python数据分析库pandas的基础知识和代码示例

    “软件工程师阅读教科书作为参考时不会记住所有的东西,但是要知道如何快速查找重·要的知识点。”

    deephub
  • 【MathorCup】2020年 A题 无车承运人平台线路定价问题,特征间的相关性分析

    问题 1:通过定量分析的方法,研究影响无车承运人平台进行货运线路定价的主要因素有哪些,并说明理由。 问题 2:根据附件 1 数据,通过建立数学模型,对已经成交...

    不太灵光的程序员
  • Pandas进阶修炼120题,给你深度和广度的船新体验

    本文为你介绍Pandas基础、Pandas数据处理、金融数据处理等方面的一些习题。

    数据派THU
  • Day05| 第四期-电商数据分析

    疫情期间,想必我们会增加网上购物,人们的生活越来越数字化。当我们消费时,无论是线上和线下都会产生大量的交易数据,对于商家来说数字化的运营方式非常必要,从大量的交...

    DataScience
  • Pandas 数据分析: 3 种方法实现一个实用小功能

    与时间相关,自然第一感觉便是转化为datetime格式,这里需要注意:需要首先将两列转化为 str 类型。

    double

扫码关注云+社区

领取腾讯云代金券