学习笔记之pandas的Series

pandas引入约定:

    import pandas as pd

    from pandas import Series

Series是一种类似于一维数组的对象,它由一组数据以及相对应的索引组成。

Series数据可由下面几种方式生成(索引在左边,值在右边):

一、自动创建并生成索引,索引从0开始

In :

import pandas as pd
from pandas import Series
import numpy as np
obj = Series([1,2,3,4])
obj

Out:

0    1
1    2
2    3
3    4
dtype: int64

二,自定义索引 

In :

obj = Series([1,2,3,4],index = ['a', 'b', 'c', 'd'])
obj
Out:
a    1
b    2
c    3
d    4
dtype: int64

三、通过字典创建

    1.只传入一个字典,索引即为dict的key。
In:
sdata = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
obj = Series(sdata)
obj
Out:
a    1
b    2
c    3
d    4
dtype: int64
    2.传入自定义索引,与dict中的key相同项合并,不同项值为NaN(类型自动转换为float)。NaN可用isnull()或notnull()检测
In:
skey = ['a', 'b', 'c', 'd', 'e', 'f']
obj = Series(sdata, skey)
obj
Out:
a    1.0
b    2.0
c    3.0
d    4.0
e    NaN
f    NaN
dtype: float64

Series索引可根据赋值立即修改,索引个数要保持一致:

In:
obj.index = ['q', 'w', 'e', 'r', 't', 'y']
obj

 
×
Out:
q    1.0
w    2.0
e    3.0
r    4.0
t    NaN
y    NaN
dtype: float64

Series可通过索引获取单个或一组值;可通过索引直接赋值:

In :

obj['a']
Out:
1
In :
obj['a'] = 5
Out:
obj


a    5
b    2
c    3
d    4
dtype: int64

Series数组运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)也会保留索引和值之间的链接:

In :


obj[obj > 2]
Out:
a    5
c    3
d    4
dtype: int64 
In:
obj *2
Out:
a    10
b     4
c     6
d     8
dtype: int64
In :
 
np.exp(obj)
Out:
0     2.718282
1     7.389056
2    20.085537
3    54.598150
dtype: float64

Series重要功能:在算术运算中会自动对齐不同索引的数据:

In:
 
sdata = {'a': 1, 'b': 2}
obj1 = Series(sdata, index = ['a', 'b', 'c'])
obj1
Out:
a    1.0
b    2.0
c    NaN
dtype: float64
In:
 
sdata = {'b':2, 'c': 3, 'd':4}
obj2 = Series(sdata)
obj2
Out:
b    2
c    3
d    4
dtype: int64
In:
 
obj1 + obj2
Out:
a    NaN
b    4.0
c    NaN
d    NaN
dtype: float64


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章