翻译 python:进阶 - 数据预处理 - 数据提取 - 使用DataFrame.isin()实现EXCEL的精确筛选功能

原文链接在此。
下载例子中用到的csv文件请点击这里。

处理数据方面,Python最重要的一个包就是Pandas,所以尽量使用pandas来处理更多的问题我觉的是最合适的。

 DataFrame.isin(values)

功能:来查看参数values是否在Series/Data Frame里边,是的话就返回按DataFrame分布布尔值True,否则False
values: Series, List, Tuple, DataFrame 或其dictionary 。



多变量筛选

import pandas as pd 

""" 
· 从isin()函数中创建gender = male 的布尔值列表,再应用到数据中;
· 先创建N个子筛选条件,再用 `AND` 或者 `&` 合并子条件:
"""

df = pd.read_csv("employees.csv") 

filter1 = df["Gender"].isin(["Female"]) 
filter2 = df["Team"].isin(["Engineering", "Distribution", "Finance" ]) 

a = df[filter1 & filter2]                 # 此处表示两个条件同时满足
print(a)

输出:
翻译 python:进阶 - 数据预处理 - 数据提取 - 使用DataFrame.isin()实现EXCEL的精确筛选功能_第1张图片

单变量筛选同理。

pandas.DataFrame.isin(version 0.24.1)。
举例:

df = pd.DataFrame({'num_legs': [2, 4], 'num_wings': [2, 0]},
                  index=[;falcon', 'dog'])
print(df)
# df如下:
        num_legs  num_wings
falcon         2          2
dog            4          0
  • 如果想知道df是否包含这几个对象(列表类型):
print(df.isin([0, 2]))
# 结果如下
        num_legs  num_wings
falcon      True       True
dog        False       True
  • 如果想知道df某列 是否包含给定的对象(字典类型):
print(df.isin({'num_wings': [0, 3]})
# 结果如下
        num_legs  num_wings
falcon     False      False
dog        False       True
  • 如果我们要查询的对象是一个DaraFrame呢?
haha = pd.DataFrame({'num_legs': [8, 2], 'num_wings': [0, 2]},
                    index=['spider', 'falcon'])
print(df.isin(other))
# 结果如下
        num_legs  num_wings
falcon      True       True
dog        False      False

你可能感兴趣的:(python:数据预处理)