pandas 数据结构之Series的使用方法
技术  /  管理员 发布于 7年前   166
1. Series
Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。
1.1 下边生成一个最简单的Series对象,因为没有给Series指定索引,所以此时会使用默认索引(从0到N-1)。
# 引入Series和DataFrameIn [16]: from pandas import Series,DataFrameIn [17]: import pandas as pdIn [18]: ser1 = Series([1,2,3,4])In [19]: ser1Out[19]: 0 11 22 33 4dtype: int64
1.2 当要生成一个指定索引的Series 时候,可以这样:
# 给index指定一个listIn [23]: ser2 = Series(range(4),index = ["a","b","c","d"])In [24]: ser2Out[24]: a 0b 1c 2d 3dtype: int64
1.3 也可以通过字典来创建Series对象
In [45]: sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}In [46]: ser3 = Series(sdata)# 可以发现,用字典创建的Series是按index有序的In [47]: ser3Out[47]: Ohio 35000Oregon 16000Texas 71000Utah 5000dtype: int64
在用字典生成Series的时候,也可以指定索引,当索引中值对应的字典中的值不存在的时候,则此索引的值标记为Missing,NA,并且可以通过函数(pandas.isnull,pandas.notnull)来确定哪些索引对应的值是没有的。
In [48]: states = ['California', 'Ohio', 'Oregon', 'Texas']In [49]: ser3 = Series(sdata,index = states)In [50]: ser3Out[50]: California NaNOhio 35000.0Oregon 16000.0Texas 71000.0dtype: float64# 判断哪些值为空In [51]: pd.isnull(ser3)Out[51]: California TrueOhio FalseOregon FalseTexas Falsedtype: boolIn [52]: pd.notnull(ser3)Out[52]: California FalseOhio TrueOregon TrueTexas Truedtype: bool
1.4 访问Series中的元素和索引:
# 访问索引为"a"的元素In [25]: ser2["a"]Out[25]: 0# 访问索引为"a","c"的元素In [26]: ser2[["a","c"]]Out[26]: a 0c 2dtype: int64# 获取所有的值In [27]: ser2.valuesOut[27]: array([0, 1, 2, 3])# 获取所有的索引In [28]: ser2.indexOut[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 64d 3dtype: int64In [35]: ser2 * 2Out[35]: a 128b 2c 4d 6dtype: int64In [36]: np.exp(ser2)Out[36]: a 6.235149e+27b 2.718282e+00c 7.389056e+00d 2.008554e+01dtype: float64
1.6 Series的自动对齐
Series的一个重要功能就是自动对齐(不明觉厉),看看例子就明白了。 差不多就是不同Series对象运算的时候根据其索引进行匹配计算。
# ser3 的内容In [60]: ser3Out[60]: Ohio 35000Oregon 16000Texas 71000Utah 5000dtype: int64# ser4 的内容In [61]: ser4Out[61]: California NaNOhio 35000.0Oregon 16000.0Texas 71000.0dtype: float64# 相同索引值的元素相加In [62]: ser3 + ser4Out[62]: California NaNOhio 70000.0Oregon 32000.0Texas 142000.0Utah NaNdtype: float64
1.7 命名
Series对象本身,以及索引都有一个 name 属性
In [64]: ser4.index.name = "state"In [65]: ser4.name = "population"In [66]: ser4Out[66]: stateCalifornia NaNOhio 35000.0Oregon 16000.0Texas 71000.0Name: population, dtype: float64
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号