博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pandas模块学习笔记1--数据结构
阅读量:6512 次
发布时间:2019-06-24

本文共 2008 字,大约阅读时间需要 6 分钟。

pandas是基于Numpy构建的。

pandas的两个主要数据结构:Series和DataFrame。

Series和DataFrame用的次数非常多,将其导入本地命名空间会更方便:

from pandas import Series, DataFrame

一、Series

Series是一种类似于一维数组的对象,由数据和数据标签(索引)组成,创建Series:

obj = Series([1,2,3])  # 该情况下会自动创建整数型索引,以0开头;索引在左边,值在右边print(obj.index)      # 通过Series的values和index属性可以获取数值和索引print(obj.values)
obj2 = Series([345,54,34,345,35],index=['a','b','c','d','e'])  # 自定义索引创建Seriesdata = {
'ohin':234,'sef':124} # 通过字典来创建Seriesobj3 = Series(data)

Series的一个重要功能是:在算术运算中会自动对齐不同索引的数据

二、DataFrame

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型。DataFrame既有行索引也有列索引,可以看成是Series组成的字典(共用同一个索引)。

创建DataFrame:传入一个由等长列表组成的字典

data = {    'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],    'year':[2000,2001,2002,2001,2002],    'pop':[1.5,1.7,3.6,2.4,2.9]}frame = DataFrame(data)输出为:   pop   state  year0  1.5    Ohio  20001  1.7    Ohio  20012  3.6    Ohio  20023  2.4  Nevada  20014  2.9  Nevada  2002

跟Series一样,如果传入的列在数据中找不到,就会产生NA值:

frame = DataFrame(data, columns=['state','year','pop','debt'],index=['one','two','three','four','five'])输出为:        state  year  pop debtone      Ohio  2000  1.5  NaNtwo      Ohio  2001  1.7  NaNthree    Ohio  2002  3.6  NaNfour   Nevada  2001  2.4  NaNfive   Nevada  2002  2.9  NaN

通过类似字典标记的方式或属性的方式,可以将DataFrame的列获取为一个Series:

print(frame.state)或 print(frame['state'])输出为:one        Ohiotwo        Ohiothree      Ohiofour     Nevadafive     NevadaName: state, dtype: object

行也可以通过位置或名称的方式进行获取,比如用索引字段ix:

print(frame.ix['three'])输出为:state    Ohioyear     2002pop       3.6debt      NaNName: three, dtype: object

列可以通过赋值的方式进行修改,将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配。为不存在的列赋值会创建出一个新列。关键字del用于删除列。

通过索引方式返回的列只是相应数据的视图而已,并不是副本。因此,对返回的Series所做的任何修改全部都会反映到源DataFrame上。

另一种常见的数据形式是嵌套字典(字典的字典):如果将它传给DataFrame函数,会被解释为:外层字典的键作为列,内层键作为行索引:

pop = {    'Nevada':{2001:2.4,2002:2.9},    'Ohio':{2000:1.5,2001:1.7,2002:3.6}}frame3 = DataFrame(pop)print(frame3)输出为:      Nevada  Ohio2000     NaN   1.52001     2.4   1.72002     2.9   3.6

 

转载于:https://www.cnblogs.com/weimusan/p/7594378.html

你可能感兴趣的文章
C语言位操作控件属性
查看>>
nginx的安装及基本配置,及多个域名服务
查看>>
Servlet访问postgresql数据库并提取数据显示在前端jsp页面
查看>>
不改一行代码定位线上性能问题
查看>>
定义运算符
查看>>
git管理
查看>>
idea演示
查看>>
告别暗黄皮肤变水嫩皮肤的8个小习惯
查看>>
加强Eclipse代码自动提示的方法
查看>>
【HM】第4课:MySQL入门
查看>>
GNS3-地址重叠环境中部署IPsec
查看>>
exchange online 用户疑问之许可证和用户数据归档
查看>>
QImage Mat IplImage 之间的相互转换
查看>>
lsof命令详解
查看>>
使用eclipse与android studio 在开发自定义控件时的区别
查看>>
我的友情链接
查看>>
mysql学习笔记
查看>>
django 问题解决
查看>>
年年有鱼游戏Android源码项目
查看>>
java使用Iterator、for循环同步数据
查看>>