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

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

1.重新索引:reindex和ix

上一篇中介绍过数据读取后默认的行索引是0,1,2,3...这样的顺序号。列索引相当于字段名(即第一行数据),这里重新索引意思就是可以将默认的索引重新修改成自己想要的样子。

1.1 Series

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

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

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

1.2 DataFrame

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

(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]筛选第一列和第三列的数据

pandas数据处理基础——筛选指定行或者指定列的数据的更多相关文章

  1. css3实现超出文本指定行数(指定文本长度)用省略号代替

    测试代码: <!DOCTYPE html> <html> <head> <meta name="viewport" content=&qu ...

  2. pandas数据处理基础——基础加减乘除的运算规则

    上周公司对所有员工封闭培训了一个星期,期间没收手机,基本上博客的更新都停止了,尽管培训时间不长,但还是有些收获,不仅来自于培训讲师的,更多的是发现自己与别人的不足,一个优秀的人不仅仅是自己专业那块的精 ...

  3. linux提取指定行至指定位置

    grep查找ERROR,定位位置 awk打印到指定行数 sed打印到文本末尾 awk打印到文本末尾 方法一 #!/bin/csh -f if(-f errorlog.rpt) then rm -rf ...

  4. shell awk读取文件中的指定行的指定字段

    1.awk功能和实用形式 awk指定读取文件中的某一行的某个字段 awk      可以设置条件来输出文件中m行到n行中每行的指定的k字段,使用格式如下 awk    'NR==m,NR==n {pr ...

  5. 使用sed替换指定文件指定行的指定文本

    下面是将85行的127.0.0.1替换为192.168.10.108 sed -i '85{s/127.0.0.1/192.168.10.108/}' /etc/zabbix/zabbix_agent ...

  6. Pandas数据处理实战:福布斯全球上市企业排行榜数据整理

    手头现在有一份福布斯2016年全球上市企业2000强排行榜的数据,但原始数据并不规范,需要处理后才能进一步使用. 本文通过实例操作来介绍用pandas进行数据整理. 照例先说下我的运行环境,如下: w ...

  7. POI读取指定Excel中行与列的数据

    import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import ...

  8. pandas 一行文本拆多行,一列拆多列

    https://zhuanlan.zhihu.com/p/28337202 一列拆多列: http://blog.csdn.net/qq_22238533/article/details/761875 ...

  9. sql 多行转多列,多行转一列合并数据,列转行

    下面又是一种详解:

随机推荐

  1. [代码应用]javaSE程序递归删除文件夹下的.bak文件程序源代码

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39158939 本文作者:sushengmiyan ------------------ ...

  2. UNIX网络编程——原始套接字SOCK_RAW

    实际上,我们常用的网络编程都是在应用层的报文的收发操作,也就是大多数程序员接触到的流式套接字(SOCK_STREAM)和数据包式套接字(SOCK_DGRAM).而这些数据包都是由系统提供的协议栈实现, ...

  3. Intellij IDEA插件开发入门

    现今的IDE尽管有如"洪水猛兽"般强大,但要知道再强大的IDE也没法提供给使用者想要的一切功能, 所以IDE一般都提供有API接口供开发者自行扩展.下面以Intellij IDEA ...

  4. 套接字输入流——InputStream

    输入缓冲装置里面必须要包含读取字符的通道,否则就谈不上缓冲了,这个通道就是InputStream,它属于jdk中java.io包的类,有了它我们就可以从源头读取字符,它的来源可以有多种多样,这里主要探 ...

  5. RAMCloud:内存云存储的内存分配机制

    现在全闪存阵列已经见怪不怪了,EMC的XtremIO,还有VNX-F(Rockies),IBM FlashSystem.全闪存真正为效率而生,重新定义存储速度.凭借极致性能,高可用性,为您极大提高企业 ...

  6. awk:快速入门(简单实用19例+鸟哥书内容)

    awk 用法:awk ' pattern {action} '  变量名 含义  ARGC 命令行变元个数  ARGV 命令行变元数组  FILENAME 当前输入文件名  FNR 当前文件中的记录号 ...

  7. 软考之路--从生活着手,看PV如何操作

    PV操作,是软考当中一个很重要的考点,一听到这个名词,顿时赶脚高大上有么有,在软考的历年试题中,也不乏PV操作的身影,老师也对PV操作进行了一次讲课,那时年少,听得稀里糊涂,也不是很理解,在小编的理解 ...

  8. Deep Learning with Torch

    原文地址:https://github.com/soumith/cvpr2015/blob/master/Deep%20Learning%20with%20Torch.ipynb Deep Learn ...

  9. Jeff Atwood质疑iPhone的单键设计

    我喜欢使用iPhone,但我对它的一个设计不敢苟同:苹果始终坚持,设备的正面永远只能有一个按键. 我还买了一个Kindle Fire,它更离谱,一个按键都没有!我完全赞成,任何小器具的正面都应该在明显 ...

  10. 海量数据挖掘MMDS week2: Nearest-Neighbor Learning最近邻学习

    http://blog.csdn.net/pipisorry/article/details/48894963 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...