详解pandas.Series()(创建一维序列)函数使用方法

  • Post category:Python

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