当前位置:   article > 正文

6.DataFrame条件筛选

dataframe条件筛选
  • 导入测试数据
import pandas as pd
employees = pd.read_csv('employees.csv',parse_dates=['Start Date'])
employees.Mgmt = employees.Mgmt.astype(bool)
employees.Salary = employees.Salary.fillna(0).astype(int)
employees['Gender'] = employees['Gender'].astype("category")
employees['Team'] = employees['Team'].astype("category")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

  • 单条件筛选
# 以下两种写法都可以,第二种将条件表达式放入变量,更清晰
employees[employees['First Name'] == 'Thomas']
find_Thomas = employees['First Name'] == 'Thomas'
employees[find_Thomas]
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

# 函数写法 以下两两等价
test = employees['Salary'] > 120000
test = employees['Salary'].gt(120000)

test = employees['Salary'] >= 120000
test = employees['Salary'].ge(120000)

test = employees['Salary'] < 120000
test = employees['Salary'].lt(120000)

test = employees['Salary'] <= 120000
test = employees['Salary'].le(120000)

test = employees['First Name'] == 'Thomas'
test = employees['First Name'].eq('Thomas')

test = employees['First Name'] != 'Thomas'
test = employees['First Name'].ne('Thomas')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

~ 条件反转

# ~ 条件反转
test = employees['Salary'] > 120000
# 反转条件 小于等于120000
employees[~test]
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

  • 多条件筛选

1.AND 条件

# 工资大于100000的女性
is_famale = employees['Gender'] == 'Female'
salary_ge100000 = employees['Salary'].ge(100000)
employees[is_famale & salary_ge100000]
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
2.OR 条件

# Thomas 或者 Julie
is_Thomas = employees['First Name'].eq('Thomas')
is_Julie = employees['First Name'].eq('Julie')
employees[is_Thomas | is_Julie]
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
3. isin() ,可以简化多个OR条件写法

names = ['Thomas', 'Dennis', 'Phillip','Jeremy', 'Phillip']
test = employees['First Name'].isin(five_names)
employees[test]['First Name'].value_counts()
  • 1
  • 2
  • 3

在这里插入图片描述
4.between() 方法 应用于数值、日期 ,包含上下限

test = employees['Salary'].between(61933, 62096)
employees[test]
  • 1
  • 2

在这里插入图片描述

test = employees['Start Date'].between('1995-06-04', '1995-07-14')
employees[test]
  • 1
  • 2

在这里插入图片描述

between() 方法应用到字符串时 不包含上限

# 这条语句筛选了A开头的名字
test = employees['First Name'].between('A', 'B')
employees[test]
  • 1
  • 2
  • 3

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/600989
推荐阅读
相关标签
  

闽ICP备14008679号