利用python进行数据分析之pandas库的应用(一)
一、pandas的数据结构介绍
Series
Series是由一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据索引构成。仅由一组数据可产生最简单的Series。
obj=Series([4,5,-7,6])
Series字符串表现形式为索引在左边,值在右边。
通过Series的index方法获取索引,values方法获取值。可通过索引的方式获取Series中的单个或者一组值
>>>obj2
a 4
b 7
c -5
d 3
dtype: int64
#可以通过索引的方式获取值
>>> obj2['a']
4
Series的数组运算会保留索引与值的连接
>>> obj2=Series([4,7,-5,3],index=['d','b','a','c'])
>>> obj2
d 4
b 7
a -5
c 3
dtype: int64
>>> obj2[obj2>0]
d 4
b 7
c 3
dtype: int64
>>> obj2*2
d 8
b 14
a -10
c 6
dtype: int64
如果数据存放在一个字典中,可以根据这个字典来创建Series,Series中的索引就是原字典的键,
>>> sdata={'ohio':35000,'texas':71000,'oregon':16000,'utah':5000}
>>> obj3=Series(sdata)
>>> obj3
ohio 35000
oregon 16000
texas 71000
utah 5000
dtype: int64
#如果指定索引,则会找出匹配值
>>> obj4=Series(sdata,index=['california','ohio','oregon','texas'])
>>> obj4
california NaN
ohio 35000
oregon 16000
texas 71000
dtype: float64
对众多情况而言,Series最重要的功能是在算术运算中会自动对齐不同的索引数据:
>>> obj3+obj4
california NaN
ohio 70000
oregon 32000
texas 142000
utah NaN
dtype: float64
DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔型)。DateFrame既有行索引也有列索引,可以被看作为由Series组成的字典。
构建DataFrame:
1、直接传入一个由等长列表或numpy数组组成的字典,
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)
>>> frame
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
#可指定序列,DataFrame的列会按照指定的顺序进行排列:
>>> DataFrame(data,columns=['year','state','pop'])
year state pop
0 2000 ohio 1.5
1 2001 ohio 1.7
2 2002 ohio 3.6
3 2001 nevada 2.4
4 2002 nevada 2.9
#如果传入的数据找不到,就会NA值
>>> frame2=DataFrame(data,columns=['year','state','pop','debt'],index=['one','two','three','four','five'])
>>> frame2
year state pop debt
one 2000 ohio 1.5 NaN
two 2001 ohio 1.7 NaN
three 2002 ohio 3.6 NaN
four 2001 nevada 2.4 NaN
five 2002 nevada 2.9 NaN
#通过类似字典标记的方式或属性的方式,可,以将DataFrame的列获取为一个Series,返回的Series与原来有相同的索引,且name属性已指定
>>> frame2.year
one 2000
two 2001
three 2002
four 2001
five 2002
Name: year, dtype: int64
>>> frame2['state']
one ohio
two ohio
three ohio
four nevada
five nevada
Name: state, dtype: object
#行也可以通过位置或名称的方式进行获取比如索引字段ix
>>> frame2.ix['three']
year 2002
state ohio
pop 3.6
debt NaN
Name: three, dtype: object
#列可以通过赋值的方式进行修改
>>> frame2['debt']=16.5
>>> frame2
year state pop debt
one 2000 ohio 1.5 16.5
two 2001 ohio 1.7 16.5
three 2002 ohio 3.6 16.5
four 2001 nevada 2.4 16.5
five 2002 nevada 2.9 16.5
#为不存在的列赋值会创建出一个新列,关键词del用于删除列
>>> frame2['eastern']=frame2.state=='ohio'
>>> frame2
year state pop debt eastern
one 2000 ohio 1.5 16.5 True
two 2001 ohio 1.7 16.5 True
three 2002 ohio 3.6 16.5 True
four 2001 nevada 2.4 16.5 False
five 2002 nevada 2.9 16.5 False
>>> del frame2['eastern']
>>> frame2
year state pop debt
one 2000 ohio 1.5 16.5
two 2001 ohio 1.7 16.5
three 2002 ohio 3.6 16.5
four 2001 nevada 2.4 16.5
five 2002 nevada 2.9 16.5
2、另一种常见的数据形式是嵌套字典,传入时会将外层字典作为列,内层的的键则作为行索引
>>> pop={'nevada':{2001:2.4,2002:2.9},'ohio':{2000:1.5,2001:1.7,2002:3.6}}
>>> frame3=DataFrame(pop)
>>> frame3
nevada ohio
2000 NaN 1.5
2001 2.4 1.7
2002 2.9 3.6
>>> frame3.T
2000 2001 2002
nevada NaN 2.4 2.9
ohio 1.5 1.7 3.6
索引对象介绍
pandas的索引对象负责管理轴标签和其他元数据,构建Series或DataFrame时,所用到的任何数组或其他序列标签都会被转换成一个Index。
>>>obj=Series(range(3),index=['a','b','c'])
>>> index=obj.index
>>> index[1:]
Index([u'b', u'c'], dtype='object')
#index对象不可修改,只有这样才能使index对象在多个数据结构之间安全共享
利用python进行数据分析之pandas库的应用(一)的更多相关文章
- 利用python进行数据分析之pandas库的应用(二)
本节介绍Series和DataFrame中的数据的基本手段 重新索引 pandas对象的一个重要方法就是reindex,作用是创建一个适应新索引的新对象 >>> from panda ...
- 利用Python进行数据分析(12) pandas基础: 数据合并
pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...
- 利用Python进行数据分析(9) pandas基础: 汇总统计和计算
pandas 对象拥有一些常用的数学和统计方法. 例如,sum() 方法,进行列小计: sum() 方法传入 axis=1 指定为横向汇总,即行小计: idxmax() 获取最大值对应的索 ...
- 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作
一.reindex() 方法:重新索引 针对 Series 重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 利用python进行数据分析之pandas入门
转自https://zhuanlan.zhihu.com/p/26100976 目录: 5.1 pandas 的数据结构介绍5.1.1 Series5.1.2 DataFrame5.1.3索引对象5. ...
- 利用Python进行数据分析(10) pandas基础: 处理缺失数据
数据不完整在数据分析的过程中很常见. pandas使用浮点值NaN表示浮点和非浮点数组里的缺失数据. pandas使用isnull()和notnull()函数来判断缺失情况. 对于缺失数据一般处理 ...
- 用python做数据分析4|pandas库介绍之DataFrame基本操作
原文地址 怎样删除list中空字符? 最简单的方法:new_list = [ x for x in li if x != '' ] 今天是5.1号. 这一部分主要学习pandas中基于前面两种数据结构 ...
- 利用Python进行数据分析(14) pandas基础: 数据转换
数据转换指的是对数据的过滤.清理以及其他的转换操作. 移除重复数据 DataFrame里经常会出现重复行,DataFrame提供一个duplicated()方法检测各行是否重复,另一个drop_dup ...
随机推荐
- Ubuntu小私房(3)--Uubutnu启动美化大变身
Grub是什么? GNU GRUB 和GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器.用来引导不同系统,如windows,linux.GRUB是多启动 ...
- android项目的的目录结构
然后我们看一下Helloword的程序目录: 我们可以看到 大致有的文件: 1. MainHelloWorld.java文件 2. R.java文件 3. android.jar文件 4. RES.L ...
- java入门学习(九) 算术运算符
请大家关注我的博客www.taomaipin.com 运算符在java基础中也占有着举足轻重的位置,我们当然要学会它.java 其实和其他计算机语言一样,基本的算术运算符基本一样,让我们看看 有哪些算 ...
- web前端学习之路
test 随着自己对于web前端知识了解的越多,越来越发现自己真的好菜 一脸茫然阶段 两年前大学接触网页设计,那时对于网页设计一窍不通,只是看了一本自己大学编的一本入门教材,我甚至不知道那些网页设计的 ...
- English - 英文写作中的最常见“十大句式”
英文写作中的最常见“十大句式” from 小木虫论坛 一.否定句 许多否定句不含not的否定结构.如果论文作者能正确使用他们,就会增加写作的闪光点,使文章显得生动活泼. 1.Instead of in ...
- ADO知识的运用二(Day 28)
可能是最近有些沉迷于电视剧了,所以,好多天都没写总结了.我知道这样不好,但又老管不住自己,也许是我自控力太差了吧......呵呵,如果在不写总结,可能以后就会成为习惯了.所以今天要赶紧补上...... ...
- ubuntu菜单面板丢了怎么找回
我的ubuntu菜单面板丢了. 我的ubuntu用的是gnome桌面环境,桌面环境分为三个区域: 1.菜单面板 (1)三个主菜单:应用程序,位置,系统. (2)快速启动区:菜单面板中间的部分称为快 ...
- 如何使用JAVA语言抓取某个网页中的邮箱地址
现实生活中咱们常常在浏览网页时看到自己需要的信息,但由于信息过于庞大而又不能逐个保存下来. 接下来,咱们就以获取邮箱地址为例,使用java语言抓取网页中的邮箱地址 实现思路如下: 1.使用Java.n ...
- JavaSE复习日记 : java包机制
这里是第一个文件,命名为JavaSE_01.java,我在这个文件里面声明了一个m1()方法,通过包机制,我将在另外一个文件夹里访问这个文件里的东西,确切的说是访问这个文件生成的一个class文件; ...
- php install extension
wget http://nginx.org/download/nginx-1.8.0.tar.gz wget http://nginx.org/download/nginx-1.8.0.tar.gz ...