pandas 过滤

博客主要介绍了Python中的数据过滤操作,包括通过loc进行行过滤及对过滤后的行赋值,如获取特定name的score值;还提到用query method进行过滤查询,以及多条件过滤,如筛选成绩大于90且年纪为17的记录行,并对符合条件的行进行操作。

条件过滤

  • 通过loc进行行过滤,也可对过滤后的行进行赋值
import pandas as pd
df = pd.DataFrame({"name": ["yang", "wang", "li", "zhang", "zhao"], "score": [100, 78, 112, 61, 94],
"age": [16, 18, 16, 17, 17]})
    • 获取 name 为 yang 的 score 值:
>>> df.loc[df["name"] == "yang", 'score']

0 100
Name: sorce, dtype: object

    • query method来进行过滤查询
df.query("name=='yang'")
   name sorce
0  yang   100

多条件过滤

  • 成绩大于90,年纪为17的记录行
>>> df[(df.score > 90) & (df.age == 17)]
   name  score  age
4  zhao     94   17
>>>
>>> df.loc[(df.score > 90) & (df.age == 17)] name score age 4 zhao 94 17
# 注意在逻辑操作符两边的过滤条件必须使用小括号括起来,否则条件过滤不起作用
# 过滤后赋值

>>>
mask = (df.score > 90) & (df.age == 17)

mask
0 False
1 False
2 False
3 False
4 True
dtype: bool 

 >>> df.loc[mask, 'score'] = df.loc[mask, 'score'] + 1

 

转载于:https://www.cnblogs.com/spaceapp/p/10937202.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值