1 引入NumPy和Pandas
import numpy as np
import pandas as pd
2 Series 创建
Series是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。 调用 Pandas.Series() 函数即可创建 Series,主要参数如下:
data:序列中的数据
index:序列的索引
dtype:序列数据的类型
name:序列的名字
# 创建方式一(列表,数组)
stus = ["Tom", "Jerry", "Jack"]
scores = [89, 67, 45]
name = "stu_scores"
s1 = pd.Series(data=scores, index=stus, dtype=int, name=name)
s1
Tom 89
Jerry 67
Jack 45
Name: stu_scores, dtype: int32
# 创建方式二(字典):
pd.Series(data = {"name":"Tom", "age":18, "score":89})
name Tom
age 18
score 89
dtype: object
# 创建方式三(标量):
pd.Series(data=5, index=list("abc"))
a 5
b 5
c 5
dtype: int64
3 Series 数据索引和筛选
s1 = pd.Series(data=range(10, 20))
s1
0 10
1 11
2 12
3 13
4 14
5 15
6 16
7 17
8 18
9 19
dtype: int64
#切片
s1[-7:5] #正负索引相结合
3 13
4 14
dtype: int64
#条件筛选
s1[s1 > 15] #输出大于15的数据
6 16
7 17
8 18
9 19
dtype: int64
#查看序列的逻辑表达式的值
s1 == 17
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 True
8 False
9 False
dtype: bool
#条件筛选
s1[ 12 < s1]
3 13
4 14
5 15
6 16
7 17
8 18
9 19
dtype: int64
#查看序列数据类型
s1.dtype
dtype('int64')
Series中常用属性和方法说明:
ndim:返回Series的维数
dtype:返回Series中元素的数据类型
size:返回Series中元素的个数
index:返回Series中的索引
value_counts():对Series中元素计数
mean():返回Series中元素的均值
#查看序列的索引
s1.index
RangeIndex(start=0, stop=10, step=1)
##统计唯一值个数
s1.value_counts()
16 1
17 1
18 1
19 1
10 1
11 1
12 1
13 1
14 1
15 1
dtype: int64
#修改
s1[12] = 11 #序列s1中不存在索引为12的数据,故在原序列上增加新元素
s1
0 10
1 11
2 12
3 13
4 14
5 15
6 16
7 17
8 18
9 19
12 11
dtype: int64
#统计唯一值个数
s1.value_counts()
11 2
16 1
17 1
18 1
19 1
10 1
12 1
13 1
14 1
15 1
dtype: int64
#根据逻辑表达式进行条件索引
s1[s1 == 11]
1 11
12 11
dtype: int64
#均值
s1.mean()
14.181818181818182
#元素个数
s1.size
11
4 Series 算术运算
Series算术运算可通过NumPy函数实现:
numpy.exp():返回e的幂次方
numpy.sqrt():返回元素的正平方根
numpy.power(x,y):返回x的y次方
#计算Series对象的e次幂
np.exp(s1)
0 2.202647e+04
1 5.987414e+04
2 1.627548e+05
3 4.424134e+05
4 1.202604e+06
5 3.269017e+06
6 8.886111e+06
7 2.415495e+07
8 6.565997e+07
9 1.784823e+08
12 5.987414e+04
dtype: float64
#计算Series对象的正平方根
np.sqrt(s1)
0 3.162278
1 3.316625
2 3.464102
3 3.605551
4 3.741657
5 3.872983
6 4.000000
7 4.123106
8 4.242641
9 4.358899
12 3.316625
dtype: float64
#计算Series对象的1/2次幂
np.power(s1, 1/2)
0 3.162278
1 3.316625
2 3.464102
3 3.605551
4 3.741657
5 3.872983
6 4.000000
7 4.123106
8 4.242641
9 4.358899
12 3.316625
dtype: float64
5 唯一值个数统计
s1
0 10
1 11
2 12
3 13
4 14
5 15
6 16
7 17
8 18
9 19
12 11
dtype: int64
#查看唯一值
s1.unique()
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19], dtype=int64)
#统计唯一值个数
s1.value_counts()
11 2
16 1
17 1
18 1
19 1
10 1
12 1
13 1
14 1
15 1
dtype: int64