美文网首页
Pandas 成员运算

Pandas 成员运算

作者: 麒麟楚庄王 | 来源:发表于2018-11-11 17:35 被阅读0次

    成员运算 isin()

    1. Series类型对象

    对于Series类型的对象,成员判断可以用isin方法:

    >>> df = pd.DataFrame([["Larry",12,40,140],["Henry",13,50,150],["Jerry",15,60,171]])

    >>> df. columns = ["name","age","weight","height"])  

    传入一个列表

    >>> df["name"].isin(["a","Larry"])  

    0 True 

    1 False    

    2 False  

    Name: name, dtype: bool     # 运行之后得到一个Series类型对象   

    2. DataFrame类型的对象

    同样使用isin成员运算,可以看到是对DataFrame的每一列进行成员判断,最终得到一个DataFrame对象。

    >>>  df.isin(["a","Larry"])  

         name     age       weight   height

    0    True      False    False    False

    1    False      False     False    False

    2     False     False   False    False   

    上面是传入一个列表进行成员判断,也可以传入一个字典进行判断:

    >>>  df.isin ({"name":["Henry","Logan","Jess"],"height":[40,50]})  

         name     age       weight   height

    0     False   False    False    False

    1     True     False    False    False       

    2     False     False   False    False 

    字典中的键如果是DataFrame的列标签,则会判断DataFrame中相应列的每一个值是否存在于,字典的键所对应的值,存在则返回True

    如果DataFrame的某一列不在字典的键中,那么最终结果中该列的所有值均为False。

    成员运算取反  ~df.isin(other)

    没有notin函数,取反就在前面加取反符号~, pandas和numpy中经常用此符号表示条件取反。

    应用:数据过滤

    >>>  df.loc[~df["name"].isin(["a","Larry"])]

    这个运行的结果和下面的运行结果相同

    1. 传一个布尔数组,即为对记录(也就是行)进行筛选

    >>> df[[False,True,True]]

    2. 省略了loc:

    >>>   df[~df["name"].isin(["a","Larry"])]

    上面三种方式最终的运行结果都是:

          name    age   weight    height

    1    Henry   13       50         150

    2    Jerry    15        60         171  

    相关文章

      网友评论

          本文标题:Pandas 成员运算

          本文链接:https://www.haomeiwen.com/subject/sazxfqtx.html