Pandas是一个基于NumPy的数据处理库,Series是基于Pandas的一种数据结构,其作用是创建一个一维的、可变的、大小可变的数组或列表等。
Series()的作用
Pandas的Series可以看作是一个带有标签的数组,它具有以下作用:
– 存储单个纬度的向量/数组/列表等数据;
– 提供类似于Python字典的键值对的结构,可以建立标签到值的映射;
– 具有许多内置的方法,用于数据的操作和处理。
Series()的使用方法
创建Series对象
Pandas中创建Series对象主要有三种方式:
– 从列表、元组等可迭代类型中创建;
– 从Numpy一维数组中创建;
– 从字典中创建。
下面,我们来具体展示这三种方法的创建示例:
从列表或元组中创建
import pandas as pd
# 利用pandas创建Series对象(从列表中创建)
s1 = pd.Series([1,2,3,4,5])
print(s1)
# 利用pandas创建Series对象(从元组中创建)
s2 = pd.Series(('a', 'b', 'c'))
print(s2)
输出结果如下:
0 1
1 2
2 3
3 4
4 5
dtype: int64
0 a
1 b
2 c
dtype: object
从Numpy一维数组中创建
import numpy as np
import pandas as pd
# Numpy一维数组
data = np.array([1,2,3,4,5])
# 利用pandas创建Series对象
s1 = pd.Series(data)
print(s1)
输出结果如下:
0 1
1 2
2 3
3 4
4 5
dtype: int64
从字典中创建
import pandas as pd
# 字典数据
data = {'key1':'value1', 'key2':'value2', 'key3':'value3'}
# 利用pandas创建Series对象
s1 = pd.Series(data)
print(s1)
输出结果如下:
key1 value1
key2 value2
key3 value3
dtype: object
Series对象的属性和方法
Series对象有许多属性和方法,在下面实例中,我们来介绍其中部分常用的属性和方法:
Series对象的属性
- values: 将Series对象转换为数组类型;
- index: 获取Series对象中的索引;
- dtype: 获取Series对象中的数据类型;
- size: 获取Series对象中的值的数量。
例如:
import pandas as pd
# 字典数据
data = {'key1':'value1', 'key2':'value2', 'key3':'value3'}
# 利用pandas创建Series对象
s1 = pd.Series(data)
# 获取Series对象的属性
print(s1.values)
print(s1.index)
print(s1.dtype)
print(s1.size)
输出结果如下:
['value1' 'value2' 'value3']
Index(['key1', 'key2', 'key3'], dtype='object')
object
3
Series对象的方法
- describe(): 获取Series对象的值的描述性统计信息;
- head(n): 获取Series对象的前n个值,默认为5个;
- tail(n): 获取Series对象的后n个值,默认为5个;
- sort_values(): 对Series对象的值进行排序;
- mean(): 获取Series对象中的平均值;
- max(): 获取Series对象中的最大值;
- min(): 获取Series对象中的最小值。
例如:
import pandas as pd
# 字典数据
data = {'key1':10, 'key2':20, 'key3':30}
# 利用pandas创建Series对象
s1 = pd.Series(data)
# 获取Series对象的方法
print(s1.describe())
print(s1.head())
print(s1.tail())
print(s1.sort_values())
print(s1.mean())
print(s1.max())
print(s1.min())
输出结果如下:
count 3.000000
mean 20.000000
std 10.000000
min 10.000000
25% 15.000000
50% 20.000000
75% 25.000000
max 30.000000
dtype: float64
key1 10
key2 20
key3 30
dtype: int64
key1 10
key2 20
key3 30
dtype: int64
key1 10
key2 20
key3 30
dtype: int64
20.0
30
10
实例应用
实例1:通过Series对象统计字符串中的元音字母数量
import pandas as pd
# 字符串数据
sentence = "The quick brown fox jumps over the lazy dog"
# 将字符串转换成列表
charlist = list(sentence.lower())
# 查找元音字母,生成字典
vowels = ['a', 'e', 'i', 'o', 'u']
vowels_count = {}
for char in charlist:
if char in vowels:
if char in vowels_count:
vowels_count[char] += 1
else:
vowels_count[char] = 1
# 将字典转换成Series对象
s1 = pd.Series(vowels_count)
# 输出结果
print(s1)
输出结果如下:
e 3
u 2
o 4
a 1
i 1
dtype: int64
实例2:通过Series对象计算平均数和标准差
import pandas as pd
import numpy as np
# 生成随机数数据
data = np.random.randint(low=1, high=100, size=10)
# 将随机数数据转换成Series对象
s1 = pd.Series(data)
# 输出Series对象的平均数和标准差
print('平均数:', s1.mean())
print('标准差:', s1.std())
输出结果如下:
平均数: 40.0
标准差: 28.89275214536454