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 相关文章推荐
Python命令行参数解析模块getopt使用实例
Apr 13 Python
Django框架下在视图中使用模版的方法
Jul 16 Python
python实现简单socket通信的方法
Apr 19 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
取numpy数组的某几行某几列方法
Apr 03 Python
Python实现的读写json文件功能示例
Jun 05 Python
基于scrapy的redis安装和配置方法
Jun 13 Python
Python列表生成式与生成器操作示例
Aug 01 Python
python3爬虫获取html内容及各属性值的方法
Dec 17 Python
Python 单例设计模式用法实例分析
Sep 23 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
python通过函数名调用函数的几种方法总结
Jun 07 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新手上路(二)
2006/10/09 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
JavaScript 的继承
2011/10/01 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
2012/05/11 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
JS 实现图片直接下载示例代码
2013/07/22 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
浅谈ng-zorro使用心得
2018/12/03 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
python实现清屏的方法
2015/04/30 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
Python标准库itertools的使用方法
2020/01/17 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
营销与策划应届生求职信
2013/11/04 职场文书
个人贷款担保书
2014/04/01 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
Python Matplotlib绘制动画的代码详解
2022/05/30 Python