欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-01-07 10:13:22
1. series series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。 1.1 下边生成一个最简单的series对象,因为没有给...

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

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

上一篇:

下一篇: