02-pandas数据结构介绍
来源:互联网 发布:土门离比客运站源码 编辑:程序博客网 时间:2024/05/17 06:45
前言
pandas有两个重要的数据结构:series 和 dataframe
你使用pandas的第一步就是引入pandas(就和java要引入包一样)
#引入pandas from pandas import Series,DataFrame import pandas as pd import numpy as np
Series
Series是一种类似于一维数组的对象,它由一组数据和与之相关的标签(索引)组成,接下来创建一个最简答的Series
创建Series
由一组数据简单创建
- 没有指定索引,索引默认从0开始
obj = Series([4,7,-5,3])#简单创建,没有指定索引,索引默认从0开始 obj
可以使用Series的values和index属性获取其数组表示形式和索引对象
obj.values
obj.index
- 指定索引创建
#指定索引创建 obj2 = Series([4,7,-5,3],index = ['d','b','a','c']) obj
通过索引的方式选取Series的单个或者一组值
#通过索引的方式选取Series中的单个或者一组值 obj2['a']
选取值大于0的数据
值都乘以2
取以e为底的指数
可以把Series看成是一个定长的有序字典,因为它是索引值到数据值得一个映射。于是它就可以使用许多需要字典参数的函数中:
字典创建Series
如果只是传入字典,不指定索引,那么Series的索引就是字典的键(有序排列)
sdata = {'ohio':3500,'Texas':71000,'Oregon':1111} obj3 = Series(sdata) obj3
states = ['California','ohio','Oregon',Texas'] obj4 = Series(sdata,index = states) obj4
在上面的例子中stata的索引会和传入的states索引相匹配的三个值找出来并发到相应的位置上,但是由于’California’对应在sdata的值找不到,所以结果就是NAN(”非数字”not a number,在pandas表示缺失值)。
pandas的isnull和notnull函数可以用于检测缺失值
Series也有类似的实例方法:
name属性
Series对象本身和索引都有一个name属性
Series的索引可以赋值修改
DataFrame
DataFrame是一个表格型的数据结构,含有一组有序的列,每列可以是不同的数值。DataFrame有行索引也有列索引
创建DataFrame
直接传入由等长列表或者Numpy数组组成的字典
data = {'state':['Ohio','Ohio','Ohio','Neveda','Neveda'], 'year':[2000,2001,2002,2003,2004], 'pop':[1.5,1.7,3.6,2.4,2.9] } frame = DataFrame(data) frame
从上面可以找到,DataFrame自动加上了行索引,且全部有序排列
指定列序列,DataFrame的列就会按照指定的顺序排列
#指定了列序列,就会列就会按照指定的顺序排列DataFrame(data,columns = ['year','state','pop'])
和Series一样,如果传入的列在数据中找不到,就会产生NA值
#传入的列在数据中找不到,就会产生NA值 frame2 = DataFrame(data,columns = ['year','state','pop','debt'],index = ['one','two','three','four','five']) frame2
通过columns属性返回列索引
通过类似字典标记或者属性的方式,可以将DataFrame的列获取为一个Series:
赋值方法修改列
列表或者数组赋值给DataFrame某个列时,长度必须和DataFrame列的长度长度匹配。如果赋值的是一个Series,Series的索引就会精确匹配DataFrame的索引,所有的空位都将被填上缺失值
val= Series([-1.2,-1.5,-1.7],index = ['two','four','five']) frame2['dept'] = val frame2
如果为不存在的列赋值,就会创建出一个新列。
frame2['eastern'] = frame2.state=='Ohio' frame2
关键字del用于删除列
【注意:】通过索引方式返回列的是相应数据的试图,不是副本。所以,对返回的Series所做的任何就地的修改全都反应在源DataFrame上。通过Series的copy方法可以显示的复制列
嵌套字典(字典中的字典)
外层字典的键作为列索引,内层字典的键作为行索引
结果转置
如果不显示的指定索引,那么内层字典的键会被合并,排序形成最终的索引,如果显示指定了索引,就会按照指定索引的顺序排列,所有的空位会被缺失值填补
Series组成的字典也差不多
下图列出了DataFrame构造函数能接受的各种数据
DataFrame的name和columns属性
values属性
和Series一样,会以二维ndarray的形式返回DataFrame数据
- 02-pandas数据结构介绍
- Pandas : 基本数据结构介绍
- pandas---数据结构介绍
- Chapter5-1: pandas 数据结构介绍
- python:pandas(1),数据结构介绍
- pandas小记:pandas数据结构
- pandas数据结构
- pandas数据结构
- python的pandas库里的数据结构介绍
- 第5章-1 Pandas的数据结构介绍Series
- pandas介绍
- python数据分析pandas包入门学习(一)pandas数据结构介绍
- pandas数据结构基础
- pandas入门-数据结构(1)
- pandas入门-数据结构(2)
- Pandas核心数据结构
- pandas数据结构Series学习
- Pandas的数据结构
- 统计字符
- Java中字符串
- Centos 更改IP地址
- viso2010相关操作技巧
- nrm切换npm源
- 02-pandas数据结构介绍
- 完美正方形(暴力深搜)
- dom操作xml
- 二叉树及其遍历
- 第一次使用Android Studio时你应该知道的一切配置
- 2017自媒体知识变现破局峰会—打破知识付费率下降的瓶颈
- vim显示行号、多行复制和删除
- 智能指针
- 基础