pandas系列之Series数据结构

241 阅读2分钟

1.Series介绍

​ Series是一种类似于一维数组的对象,由一组数据及一组与之相关的数据标签(索引)组成

​ eg:

123.png 第一列是数据标签,第二列是具体的数据,数据标签与数据是一一对应的

2.Series创建

import pandas as pd

方法:pd.Series()

给方法传入不同的对象即可实现创建Series对象

2.1 传入一个列表创建

2.1.1 只传入一个列表

s1 = pd.Series(["a", "b", "c", "d"])
print(s1)

result:

0    a
1    b
2    c
3    d
dtype: object

此时Series默认使用从0开始的数作为数据标签,上面的0、1、2、3就是默认的数据标签

2.1.2 传入列表和index参数

s2 = pd.Series([1, 2, 3, 4], index=["a", "b", "c", "d"])
print(s2)

result:

a    1
b    2
c    3
d    4
dtype: int64

可以通过index参数来自定义索引。此时展示的a, b, c, d就是自定义标签,替代了默认的从0开始的标签

2.2 传入字典创建

s3 = pd.Series({"a": 1, "b": 2, "c": 3, "d": 4})
print(s3)

result:

a    1
b    2
c    3
d    4
dtype: int64

此时字典的key就是数据标签,value就是数据值

这里有个问题需要注意,如果指定索引,则会按索引顺序。如果有无法与索引对应的值,则会产生缺失值

import pandas as pd
​
s = pd.Series({'b': 1, 'a': 0, 'c': 2}, index=['a', 'b', 'c', 'd', 'e'])
print(s)

result:

a    0.0
b    1.0
c    2.0
d    NaN
e    NaN
dtype: float64

2.3 传入ndarray创建

import pandas as pd
import numpy as np
​
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
print(s)

result:

a   -1.128164
b   -1.538805
c    0.412775
d   -0.555028
e    0.830566
dtype: float64

2.4 传入标量

对于一个具体的值,如果不指定索引,其长度为1;如果指定索引,则长度为索引的长度

2.4.1 不指定索引

import pandas as pd
​
s = pd.Series(2)
print(s)

result:

0    2
dtype: int64

2.4.2 指定索引

import pandas as pd
​
s = pd.Series(2, index=['a', 'b', 'c'])
print(s)

result:

a    2
b    2
c    2
dtype: int64

3.获取索引

通过index方法获取Series的索引

s1 = pd.Series(["a", "b", "c", "d"])
print(s1.index)

result:

RangeIndex(start=0, stop=4, step=1)

4.获取值

通过values方法获取Series的值

s1 = pd.Series(["a", "b", "c", "d"])
print(s1.values)

result:

['a' 'b' 'c' 'd']