Pandas包对数据的常用数据切片功能

目录


DataFrame的索引选取

  • []

    • 只能对行进 行(row/index) 切片,前闭后开

      df[0:3]
      df[:4]
      df[4:]
  • where 布尔查找
    • 在[]基础上的运用  

      df[df["A"]>7]
  • isin
    • 比where更为灵活

      # 返回布尔值
      s.isin([1,2,3])
      df["A"].isin([1,2,3]) df.loc[df['sepal_length'].isin([5.8,5.1])]
  • query
    • 多个where整合切片,&:于,|:或  

      df.query(" A>5.0 & (B>3.5 | C<1.0) ")
  • loc :根据名称Label切片
    • 切名称

      # df.loc[A,B] A是行范围,B是列范围
      df.loc[1:4,['petal_length','petal_width']]
    • 创建新变量
      # 需求1:创建一个新的变量 test
      # 如果sepal_length > 3 test = 1 否则 test = 0
      df.loc[df['sepal_length'] > 6, 'test'] = 1
      df.loc[df['sepal_length'] <=6, 'test'] = 0 # 需求2:创建一个新变量test2
      # 1.petal_length>2 and petal_width>0.3 = 1
      # 2.sepeal_length>6 and sepal_width>3 = 2 3.其他 = 0
      df['test2'] = 0
      df.loc[(df['petal_length']>2)&(df['petal_width']>0.3), 'test2'] = 1
      df.loc[(df['sepal_length']>6)&(df['sepal_width']>3), 'test2'] = 2
  • iloc:切位置

    • 切位置,以序列号去切

      df.iloc[1:4,:]
  • ix:混切
    • 名称和位置混切,但效率低,少用

      df1.ix[0:3,['sepal_length','petal_width']]
  • map与lambda
    •   

      alist = [1,2,3,4]
      map(lambda s : s+1, alist)
      [2, 3, 4, 5]
    • df['sepal_length'].map(lambda s:s*2+1)[0:3]
      0    11.2
      1 10.8
      2 10.4
      Name: sepal_length, dtype: float64
  • contains
    • # 使用DataFrame模糊筛选数据(类似SQL中的LIKE)
      # 使用正则表达式进行模糊匹配,*匹配0或无限次,?匹配0或1次
      df_obj[df_obj['套餐'].str.contains(r'.*?语音CDMA.*')] # 下面两句效果一致
      df[df['商品名称'].str.contains("四件套")]
      df[df['商品名称'].str.contains(r".*四件套.*")]


Pandas-数据选取的更多相关文章

  1. python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]

    1 引言 Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用.本文主要介绍Pandas的几种数据选取的方法. Pandas中,数据主要保存为Dataframe和Se ...

  2. 数据分析与展示——Pandas数据特征分析

    Pandas数据特征分析 数据的排序 将一组数据通过摘要(有损地提取数据特征的过程)的方式,可以获得基本统计(含排序).分布/累计统计.数据特征(相关性.周期性等).数据挖掘(形成知识). .sort ...

  3. pandas小记:pandas数据输入输出

    http://blog.csdn.net/pipisorry/article/details/52208727 数据输入输出 数据pickling pandas数据pickling比保存和读取csv文 ...

  4. Pandas数据排序

    Pandas数据排序 .sort_index() 在指定轴上根据索引进行排序,索引排序后内容会跟随排序 b = pd.DataFrame(np.arange(20).reshape(4,5),inde ...

  5. pandas数据操作

    pandas数据操作 字符串方法 Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素 t = pd.Series(['a_b_c_d','c_d_e',np. ...

  6. Pandas数据存取

    pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA']) Pandas数据存取 Pandas可以存取多种介质类型数据, ...

  7. pandas 数据预处理

    pandas 数据预处理 缺失数据处理 csv_data=''' A,B,C,D 1.0,2.0,3.0,4.0 5.6,6.0,,8.0 0.0,11.0,12.0,,''' import pand ...

  8. Pandas数据规整

    Pandas数据规整 数据分析和建模方面的大量编程工作都是用在数据准备上的,有时候存放在文件或数据库中的数据并不能满足数据处理应用的要求 Pandas提供了一组高级的.灵活的.高效的核心函数和算法,它 ...

  9. Python的工具包[1] -> pandas数据预处理 -> pandas 库及使用总结

    pandas数据预处理 / pandas data pre-processing 目录 关于 pandas pandas 库 pandas 基本操作 pandas 计算 pandas 的 Series ...

  10. Python之pandas数据加载、存储

    Python之pandas数据加载.存储 0. 输入与输出大致可分为三类: 0.1 读取文本文件和其他更好效的磁盘存储格式 2.2 使用数据库中的数据 0.3 利用Web API操作网络资源 1. 读 ...

随机推荐

  1. Git安装与配置

    一.简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...

  2. java HashMap

    HashMap 的性能因子 1. 容量:表示桶位的数量. 2. 初始容量: 表在创建是所拥有的桶位数.   如果你知道将要在HashMap存储多少项,创建一个初始容量合适的HashMap将可以避免自动 ...

  3. 编译软件基础知识(1/2) via LinuxSir

    内容来自LinuxSir: 如果不出意外的话,会出现say.so => not found. 这时的./test是不能运行的.但至少说明程序运行时是需要这个库的.那为什么找不到这个库呢?那就让我 ...

  4. ACM失败之路

    校赛打完,已过四月,该是准备背起行囊,踏上考研之路了,自然,得先阔别一下ACM了,想起这几年ACM路,感慨颇多,不得不一诉心肠,与大家分享一下我的ACM历程,如果有人能从此文获取一些益处,那我就很欣慰 ...

  5. Redis的安装

    1. 中文官网:http://www.redis.cn/download.html 英文官网:http://www.redis.io/download 里面的内容的一样的,就是一个是中文写的,一个是英 ...

  6. [原]那些年整理的Linux常用命令,简单明了

    查询相关 find 按规则查找某个文件或文件夹,包括子目录 find . -name '*.sh' -- 以.sh结尾的文件 find . -name '*channel*' -- 包含channel ...

  7. Matlab && C-Mex Round 1

    前言:本篇文章主要通过一个简单的例子程序对C-Mex进行一个初步的说明.前期的环境搭建(包括安装Matlab和gcc编译器)就不在这里赘述了. 在看文章之前,建议初学者先检查一下Matlab的mex配 ...

  8. Chrome firefox ie等浏览器空格&nbsp;宽度不一样怎么办

    有点强迫症,之前某个页面用了空格 ,但是在chrome firefox 和ie显示的宽度都不一样,无法对齐. 搜索了一下,很多人都转载了那篇设置成宋体的,可是仍然没对齐,要么ie对齐,要么chrome ...

  9. Android studio下使用SharedSDK

      原贴出自:http://bbs.mob.com/thread-5148-1-1.html   首先新建了一个项目用来演示集成ShareSDK 下载好了ShareSDK之后,我们按照下面的步骤使用快 ...

  10. mysql中的优化, 简单的说了一下垂直分表, 水平分表(有几种模运算),读写分离.

    一.mysql中的优化 where语句的优化 1.尽量避免在 where 子句中对字段进行表达式操作select id from uinfo_jifen where jifen/60 > 100 ...