博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python科学计算之Pandas使用(一)
阅读量:3730 次
发布时间:2019-05-22

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

阅读大概需要3分钟

作者老齐

编辑 zenRRan

链接 http://wiki.jikexueyuan.com/project/start-learning-python/311.html

Pandas 是基于 NumPy 的一个非常好用的库,正如名字一样,人见人爱。之所以如此,就在于不论是读取、处理数据,用它都非常简单。

导读基本的数据结构

Pandas 有两种自己独有的基本数据结构。读者应该注意的是,它固然有着两种数据结构,因为它依然是 Python 的一个库,所以,Python 中有的数据类型在这里依然适用,也同样还可以使用类自己定义数据类型。只不过,Pandas 里面又定义了两种数据类型:Series 和 DataFrame,它们让数据操作更简单了。

以下操作都是基于:

为了省事,后面就不在显示了。并且如果你跟我一样是使用 ipython notebook,只需要开始引入模块即可。

Series

Series 就如同列表一样,一系列数据,每个数据对应一个索引值。比如这样一个列表:[9, 3, 8],如果跟索引值写到一起,就是:

这种样式我们已经熟悉了,不过,在有些时候,需要把它竖过来表示:

上面两种,只是表现形式上的差别罢了。

Series 就是“竖起来”的 list:

另外一点也很像列表,就是里面的元素的类型,由你任意决定(其实是由需要来决定)。

这里,我们实质上创建了一个 Series 对象,这个对象当然就有其属性和方法了。比如,下面的两个属性依次可以显示 Series 对象的数据值和索引:

列表的索引只能是从 0 开始的整数,Series 数据类型在默认情况下,其索引也是如此。不过,区别于列表的是,Series 可以自定义索引

自定义索引,的确比较有意思。就凭这个,也是必须的。

每个元素都有了索引,就可以根据索引操作元素了。还记得 list 中的操作吗?Series 中,也有类似的操作。先看简单的,根据索引查看其值和修改其值:

这是不是又有点类似 dict 数据了呢?的确如此。看下面就理解了。

读者是否注意到,前面定义 Series 对象的时候,用的是列表,即 Series() 方法的参数中,第一个列表就是其数据值,如果需要定义 index,放在后面,依然是一个列表。除了这种方法之外,还可以用下面的方法定义 Series 对象:

现在是否理解为什么前面那个类似 dict 了?因为本来就是可以这样定义的。

这时候,索引依然可以自定义。Pandas 的优势在这里体现出来,如果自定义了索引,自定的索引会自动寻找原来的索引,如果一样的,就取原来索引对应的值,这个可以简称为“自动对齐”。

在 sd 中,只有'python':8000, 'c++':8100, 'c#':4000,没有"java",但是在索引参数中有,于是其它能够“自动对齐”的照搬原值,没有的那个"java",依然在新 Series 对象的索引中存在,并且自动为其赋值 NaN。在 Pandas 中,如果没有值,都对齐赋给 NaN。来一个更特殊的:

新得到的 Series 对象索引与 sd 对象一个也不对应,所以都是 NaN

Pandas 有专门的方法来判断值是否为空。

此外,Series 对象也有同样的方法:

其实,对索引的名字,是可以从新定义的:

对于 Series 数据,也可以做类似下面的运算(关于运算,后面还要详细介绍):

上面的演示中,都是在 ipython notebook 中进行的,所以截图了。在学习 Series 数据类型同时了解了 ipyton notebook。对于后面的所有操作,读者都可以在 ipython notebook 中进行。但是,我的讲述可能会在 Python 交互模式中进行。

下一篇

python科学计算之Pandas使用(二)  DataFrame

每日托福单词

indigenous  adj. 当地的,本土的

ethnic  adj. 种族的,人种的

stereotype  n.  思维定势 v. 刻板地对待

discrete  adj.  分离的,不相关的

redundant  adj. 多余的,过剩的

推荐阅读:


欢迎关注深度学习自然语言处理公众号,我会每天更新自己在科研学习路上的一点一滴!再小的人也有自己的品牌!期待和你一起进步!

长按识别二维码

转载地址:http://npenn.baihongyu.com/

你可能感兴趣的文章
Android Studio下载
查看>>
埃拉托列尼塞算法(求质数)
查看>>
欧几里得算法(原始形式减法)证明
查看>>
扩展欧几里得算法
查看>>
XML Schema 简易入门教程
查看>>
Java反射机制学习笔记(1)
查看>>
Mysql语法教程
查看>>
Numpy简易教程——入门篇
查看>>
Leedcode400-----第N个数字
查看>>
Numpy简易教程——数据存取与函数
查看>>
Jupyter Notebook的函数参数的查询
查看>>
字典树(前缀树)
查看>>
Manacher算法
查看>>
Numpy简易教程——图像的数组表示
查看>>
Matplotlib入门教程
查看>>
线段树实例--灯笼哥大佬
查看>>
子数组中最大出现次数最多的元素(Leedcode1157)
查看>>
小程序开发教程01----准备工作
查看>>
Matplotlib库基础图表函数
查看>>
平衡二叉树构造
查看>>