0%

Pandas数据结构-Series(一)

导入必要的包

1
2
import numpy as np
import pandas as pd

创建Series

创建只含一个元素的Series

1
2
s1 = pd.Series(16)
print(s1)

输出:

1
2
0    16
dtype: int64

通过索引获取值

1
2
val = s1[0]
print(val)

输出:

1
16

通过列表创建Series

1
2
s2 = pd.Series([7, 8, 9, 10, 11])
print(s2)

输出:

1
2
3
4
5
6
0     7
1 8
2 9
3 10
4 11
dtype: int64

获取Series的所有值或索引

使用Series实例的两个属性:values和index

1
print(s2.values) # 获取值

输出:

1
[ 7  8  9 10 11]

使用index属性

1
print(s2.index) # 获取索引

输出:

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

指定值和索引创建Series

使用了参数index,参数类型为列表(list)

1
2
s3 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
print(s3)

输出:

1
2
3
4
a    1
b 2
c 3
dtype: int64

使用已存在的Series索引创建Series

将已存在Series的索引(使用index属性)赋值给参数index

1
2
s4 = pd.Series(2, index=s3.index)
print(s4)

输出:

1
2
3
4
a    2
b 2
c 2
dtype: int64

值的数量不足时,将会依每个索引把值复制一遍

使用5个正态随机数生成Series

这里用了numpy的1-darray类型来创建

1
2
3
dict1 = {'a': 1, 'b': 2, 'c': 3}
s5 = pd.Series(dict1)
print(s5)

输出:

1
2
3
4
a    1
b 2
c 3
dtype: int64

关于Series值的属性、函数和方法

首先创建一个带有NaN值的Series

1
2
s = pd.Series([0, 1, 1, 2, 3, 4, 5, 6, 7, np.nan])
print(s)

输出:

1
2
3
4
5
6
7
8
9
10
11
0    0.0
1 1.0
2 1.0
3 2.0
4 3.0
5 4.0
6 5.0
7 6.0
8 7.0
9 NaN
dtype: float64

Series的长度

使用len()函数或size属性

1
print(len(s))


1
print(s.size)

都将输出:

1
10

Series的尺寸

使用shape属性,会得到一个元组

1
print(s.shape)

输出:

1
(10,)

统计Series中非NaN的值的数量

使用count()方法

1
print(s.count())

输出:

1
9

获取Series中的所有的唯一值

使用unique()方法

1
print(s.unique())

输出:

1
[ 0.  1.  2.  3.  4.  5.  6.  7. nan]

预览数据的一部分

预览数据的开头部分

使用head()函数,可选参数n:需要预览的行数

1
print(s.head(3))

输出:

1
2
3
4
0    0.0
1 1.0
2 1.0
dtype: float64

预览数据的结尾部分

使用tail()函数,可选参数n:需要预览的行数

1
print(s.tail(4))

输出:

1
2
3
4
5
6    5.0
7 6.0
8 7.0
9 NaN
dtype: float64

预览数据的指定部分

使用take()函数,参数:索引组成的列表(list)

1
print(s.take([2, 3, 6]))

输出:

1
2
3
4
2    1.0
3 2.0
6 5.0
dtype: float64

在Series中查找值

引用s3

1
2
3
4
a    1
b 2
c 3
dtype: int64

通过索引名查找

索引名可为列表(list)

1
print(s3['a'])

输出:

1
1

通过位置(从0开始)查找

位置可为列表(list)

1
print(s3[1])

输出:

1
2

强行只通过索引名查找

1
s5 = pd.Series([1, 2, 3], index=[10, 11, 12])

s5结构如下:

1
2
3
4
10    1
11 2
13 3
dtype: int64

使用loc[]属性,列表类型,可传入列表(list)

1
print(s5.loc[12])

输出:

1
3

如果索引名不存在会返回NaN,且不能传入位置

强行只通过位置查找

使用iloc[]属性,列表类型,可传入列表(list)

1
print(s5.iloc[1])

输出:

1
2

如果位置不存在会报错,且不能传入索引名

位置和索引名兼容查找(不推荐)

使用ix[]属性,列表类型,可传入列表(list)。

本文标题:Pandas数据结构-Series(一)

文章作者:SkecisAI

发布时间:2019年10月15日 - 19:15:43

最后更新:2019年12月15日 - 16:32:35

原始链接:http://www.skecis.top/2019/10/15/Pandas-Series/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

感谢你的支持,希望本文能助你一臂之力。