pandas 过滤

条件过滤

  • 通过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

 

你可能感兴趣的:(pandas 过滤)