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. Jsp 错题分析

    ArrayList删除元素通过RemoveAt(int index)来删除指定索引值的元素 运行时异常都是RuntimeException类及其子类异常,如NullPointerException.I ...

  2. PHP数组操作

    PHP数组 1.数字索引数组 1.1创建一个数组 php中最常用的两个类型是:数组,字符串.数组也分为两种,一种是数字索引,一种是关键是索引,关键字索引有点像python中字典的意思.数字索引类型的数 ...

  3. ajax方法总结

    ajax方法总结 1.原生ajax get请求和post请求区别:黄色小三角 以get请求为例,输出结果如下: 2.jquery中的ajax 列了常用的6个方法: 3.状态说明 readystate: ...

  4. Winform无边框窗体的移动和阴影

    //窗体移动API [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport ...

  5. 初学C#和MVC的一些心得,弯路,总结,还有教训(1)--语言的选择

    因为惰性,自制力,求知欲等各方面原因....一直没有学新技术,总感觉VB6凑合能用就凑合用.... 于是大概从05年开始,几乎每次新版的vs一发布,我就下载回来,然后安装,然后,,,,就扔那了.... ...

  6. js小数点失精算法修正

    在用js计算0.07*100时候竟然=7.000000000000001 关于js失精算法你都遇到哪些,让我们一起来细数一下吧 console.log(0.07*100); // 7.00000000 ...

  7. php 异常处理类

    PHP具有很多异常处理类,其中Exception是所有异常处理的基类. Exception具有几个基本属性与方法,其中包括了: message 异常消息内容code 异常代码file 抛出异常的文件名 ...

  8. Sigmaplot 13 破解版什么地方可以下载

    SigmaPlot是一款专业的科学绘图软件,可用于绘制准确.高质量的图形和曲线,支持一百多种2D.3D科学图形,同时拥有强大的数据统计分析功能.现在网络不断发展,软件使用日益频繁,今天小编就和大家分享 ...

  9. 五种开源协议(GPL,LGPL,BSD,MIT,Apache)

    什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限. 不管产品是免费向公众分发,还 ...

  10. Cocos2d-x 3.X 事件分发机制

    介绍 Cocos2d-X 3.X 引入了一种新的响应用户事件的机制. 涉及三个基本的方面: Event listeners 封装你的事件处理代码 Event dispatcher 向 listener ...