首页 > 其他 > 详细

pandas模块学习笔记1--数据结构

时间:2017-09-25 23:23:54      阅读:252      评论:0      收藏:0      [点我收藏+]

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])  # 自定义索引创建Series
data = {ohin:234,sef:124}  # 通过字典来创建Series
obj3 = 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  year
0  1.5    Ohio  2000
1  1.7    Ohio  2001
2  3.6    Ohio  2002
3  2.4  Nevada  2001
4  2.9  Nevada  2002

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

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

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

print(frame.state)
或 print(frame[state])
输出为:
one        Ohio
two        Ohio
three      Ohio
four     Nevada
five     Nevada
Name: state, dtype: object

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

print(frame.ix[three])
输出为:
state    Ohio
year     2002
pop       3.6
debt      NaN
Name: 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  Ohio
2000     NaN   1.5
2001     2.4   1.7
2002     2.9   3.6

 

pandas模块学习笔记1--数据结构

原文:http://www.cnblogs.com/weimusan/p/7594378.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!