Data
Stay hungry,Stay foolish!

导航

 

索引、选取和过滤

大部分的查询用法
类型 说明
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

posted on 2018-11-01 15:07  进击中的青年  阅读(1915)  评论(0编辑  收藏  举报