zoukankan      html  css  js  c++  java
  • Pandas基本功能之选取索引和过滤

    索引、选取和过滤

    大部分的查询用法
    类型 说明
    obj[val] 选取DataFrame的单个列或一组列
    obj.ix[val] 选取DataFrame的单个行或一组行
    obj.ix[:,val] 选取单个列或列子集
    obj.ix[val1,val2] 同时选取行和列
    reindex方法 将一个或多个轴匹配到新索引
    xs方法 根据标签选取单行或单列,并返回一个Series
    icol、irow方法 根据整数位置选取单列或单行,并返回Series
    get_value、set_value方法 根据行标签和列标签选取单个值
    示例
    • Series
    obj = Series(np.arange(4.),index=['a','b','c','d'])
    obj
    
    a    0.0
    b    1.0
    c    2.0
    d    3.0
    dtype: float64
    
    Series索引查
    obj[1]
    1.0
    obj[1:3]
    b    1.0
    c    2.0
    dtype: float64
    
    Series索引的标签查询,它和切片的区别,不只顾头还顾尾
    obj['a':'c']
    
    a    0.0
    b    1.0
    c    2.0
    dtype: float64
    
    obj['a':'c']=5
    obj
    
    a    5.0
    b    5.0
    c    5.0
    d    3.0
    dtype: float64
    
    • DataFrame

    操作列进行查询的方式

    data = pd.DataFrame(np.arange(16).reshape(4,4),index=['a','b','c','d'],columns=['one','two','three','four'])
    data
    
    one	two	three	four
    a	0	1	2	3
    b	4	5	6	7
    c	8	9	10	11
    d	12	13	14	15
    
    直接操作索引会报错,用索引查必须是切片,选取行
    data[0:2]
            
    one	two	three	four
    a	0	0	0	0
    b	0	5	6	7
    
    可以用列索引的标签名字查询
    data[['one','two','three']]
    
    one	two	three
    a	0	1	2
    b	4	5	6
    c	8	9	10
    d	12	13	14
    

    ix操作行进行查询,ix[行,列]

    data.ix[['a','b'],['two','four']]
    
    two	four
    a	1	3
    b	5	7
    
    ix查询不只顾头也顾尾
    data.ix[:'c',:'two']
    one	two
    a	0	1
    b	4	5
    c	8	9
    
    利用布尔值进行查询
    # 行大于7,的前两列,这里边的切片查询依然是顾头不顾尾
    data.ix[data.three>7,:2]
    
    one	two
    c	8	9
    d	12	13
    

    个人总结查询使用Series操作索引是直接行操作,如果使用DataFrame进行索引默认都是操作列,操作行需要使用ix

  • 相关阅读:
    SpringIOC的小例子
    java中递归实现复制多级文件夹
    快速排序和几种简单排序
    Oracle面试的基本题
    多态的两个小例子
    单例模式
    内部类与匿名内部类
    C#
    C#
    C#
  • 原文地址:https://www.cnblogs.com/lishi-jie/p/9889357.html
Copyright © 2011-2022 走看看