pandas 数据结构之Series的使用方法


Posted in Python onJune 21, 2019

1. Series

Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。

1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1)。

# 引入Series和DataFrame
In [16]: from pandas import Series,DataFrame
In [17]: import pandas as pd

In [18]: ser1 = Series([1,2,3,4])

In [19]: ser1
Out[19]: 
0  1
1  2
2  3
3  4
dtype: int64

1.2 当要生成一个指定索引的Series 时候,可以这样:

# 给index指定一个list
In [23]: ser2 = Series(range(4),index = ["a","b","c","d"])

In [24]: ser2
Out[24]: 
a  0
b  1
c  2
d  3
dtype: int64

1.3 也可以通过字典来创建Series对象

In [45]: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

In [46]: ser3 = Series(sdata)
# 可以发现,用字典创建的Series是按index有序的
In [47]: ser3
Out[47]: 
Ohio   35000
Oregon  16000
Texas   71000
Utah    5000
dtype: int64

在用字典生成Series的时候,也可以指定索引,当索引中值对应的字典中的值不存在的时候,则此索引的值标记为Missing,NA,并且可以通过函数(pandas.isnull,pandas.notnull)来确定哪些索引对应的值是没有的。 

In [48]: states = ['California', 'Ohio', 'Oregon', 'Texas']

In [49]: ser3 = Series(sdata,index = states)

In [50]: ser3
Out[50]: 
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
dtype: float64
# 判断哪些值为空
In [51]: pd.isnull(ser3)
Out[51]: 
California   True
Ohio     False
Oregon    False
Texas     False
dtype: bool

In [52]: pd.notnull(ser3)
Out[52]: 
California  False
Ohio      True
Oregon     True
Texas     True
dtype: bool

1.4 访问Series中的元素和索引:

# 访问索引为"a"的元素
In [25]: ser2["a"]
Out[25]: 0
# 访问索引为"a","c"的元素
In [26]: ser2[["a","c"]]
Out[26]: 
a  0
c  2
dtype: int64
# 获取所有的值
In [27]: ser2.values
Out[27]: array([0, 1, 2, 3])
# 获取所有的索引
In [28]: ser2.index
Out[28]: Index([u'a', u'b', u'c', u'd'], dtype='object')

1.5 简单运算

在pandas的Series中,会保留NumPy的数组操作(用布尔数组过滤数据,标量乘法,以及使用数学函数),并同时保持引用的使用

In [34]: ser2[ser2 > 2]
Out[34]: 
a  64
d   3
dtype: int64

In [35]: ser2 * 2
Out[35]: 
a  128
b   2
c   4
d   6
dtype: int64

In [36]: np.exp(ser2)
Out[36]: 
a  6.235149e+27
b  2.718282e+00
c  7.389056e+00
d  2.008554e+01
dtype: float64

1.6 Series的自动对齐

Series的一个重要功能就是自动对齐(不明觉厉),看看例子就明白了。 差不多就是不同Series对象运算的时候根据其索引进行匹配计算。

# ser3 的内容
In [60]: ser3
Out[60]: 
Ohio   35000
Oregon  16000
Texas   71000
Utah    5000
dtype: int64
# ser4 的内容
In [61]: ser4
Out[61]: 
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
dtype: float64
# 相同索引值的元素相加
In [62]: ser3 + ser4
Out[62]: 
California     NaN
Ohio      70000.0
Oregon     32000.0
Texas     142000.0
Utah        NaN
dtype: float64

1.7 命名

Series对象本身,以及索引都有一个 name 属性

In [64]: ser4.index.name = "state"

In [65]: ser4.name = "population"

In [66]: ser4
Out[66]: 
state
California    NaN
Ohio     35000.0
Oregon    16000.0
Texas     71000.0
Name: population, dtype: float64

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
Python标准库之itertools库的使用方法
Sep 07 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
python 调用有道api接口的方法
Jan 03 Python
Python数据可视化之画图
Jan 15 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
Python内置类型性能分析过程实例
Jan 29 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
python合并多个excel文件的示例
Sep 23 Python
python 下载文件的多种方法汇总
Nov 17 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 #Python
用scikit-learn和pandas学习线性回归的方法
Jun 21 #Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 #Python
十分钟搞定pandas(入门教程)
Jun 21 #Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 #Python
python实现Dijkstra算法的最短路径问题
Jun 21 #Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
Jun 21 #Python
You might like
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
PHP SOCKET编程详解
2015/05/22 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
Jquery下的26个实用小技巧(jQuery tips, tricks & solutions)
2010/03/01 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
vue+element+Java实现批量删除功能
2019/04/08 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
让python json encode datetime类型
2010/12/28 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
Python之list对应元素求和的方法
2018/06/28 Python
python构建指数平滑预测模型示例
2019/11/21 Python
Django缓存Cache使用详解
2020/11/30 Python
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
C#可否对内存进行直接的操作
2015/02/26 面试题
高中生期末评语
2014/01/28 职场文书
化工操作工岗位职责
2014/04/29 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
运动会广播稿200字
2015/08/19 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
亲情作文之母爱
2019/09/25 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript