pandas数据处理基础——筛选指定行或者指定列的数据

        pandas主要的两个数据结构是:series(至关于一行或一列数据机构)和DataFrame(至关于多行多列的一个表格数据机构)。python

        本文为了方便理解会与excel或者sql操做行或列来进行联想类比sql

 

1.从新索引:reindex和ix数据结构

 

上一篇中介绍过数据读取后默认的行索引是0,1,2,3...这样的顺序号。列索引至关于字段名(即第一行数据),这里从新索引意思就是能够将默认的索引从新修改为本身想要的样子。spa

 

1.1 Seriesexcel

比方说:data=Series([4,5,6],index=['a','b','c']),行索引为a,b,c。blog

咱们用data.reindex(['a','c','d','e'])修改索引后则输出:索引

 

能够理解成咱们用reindex设了索引后,根据索引去原来data里面匹配对应的值,没匹配上的就是NaN。pandas

 

1.2 DataFrametable

(1)行索引修改:DataFrame行索引同Seriesselect

(2)列索引修改:列索引用reindex(columns=['m1','m2','m3']),用参数columns来指定对列索引进行修改。修改逻辑相似行索引,也是至关于用新列索引去匹配原来的数据,没匹配上的置NaN

例:

 

 (3)同时对行和列索引进行修改能够用

 

2.丢弃指定轴上的列(通俗的说法就是删除行或者列):drop

经过索引进行选择删除哪一行或者哪一列

data.drop(['a','c'])  至关于delete table a where xid='a' or xid='c'

data.drop('m1',axis=1)至关于delete table a where yid='m1'

 

3.选取和过滤(通俗的说就是sql中按照条件筛选查询)

python中由于有行列索引,在作数据的筛选会比较方便

 

3.1 Series

(1)按照行索引进行选择如

 

 

  • obj['b']至关于select * from tb where xid='b'
  • obj['b','a','c']至关于select * from tb where xid in ('a','b','c'),且结果按照b ,a ,c 的顺序排列后进行展现,这是与sql的区别
  • obj[0:1]和obj['a':'b']的区别以下:      

          #前者是不包含末端,后者是包含了末端

 

(2)按照值的大小进行筛选obj[obj>-0.6]至关于在obj数据中找出值比-0.6大的记录进行展现

 

3.2 DataFrame

(1)选择单行用ix或者xs:

         如筛选索引为b的那条行记录用如下三种方式

 

 (2)选择多行:

       筛选索引为a,b的两条行记录的方式

 

 

     #以上不能直接写成data[['a','b']]

      data[0:2]表示从第一行到第二行的记录。第一行默认从0开始数,不包含末端的2。

(3)选择单列

        筛选m1列的全部行记录数据

 

(4)选择多列

       筛选m1,m3两个列,全部行记录的数据

 

 

       ix[:,['m1','m2']]前面的:表示全部的行都筛选进来。

(5)根据值的大小条件筛选行或者列

         如筛选出某一列值大于4的全部记录至关于select * from tb where 列名>4

 

 (6)若是筛选某列值大于4的全部记录,且只需展现部分列的状况时

 

    行用条件进行筛选,列用[0,2]筛选第一列和第三列的数据 

相关文章
相关标签/搜索