龙听期货论坛's Archiver

龙听 发表于 2024-3-6 12:32

【Pandas 教程系列】- Pandas 数据结构 - Series

Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。

Series 特点:

索引: 每个 Series 都有一个索引,它可以是整数、字符串、日期等类型。如果没有显式指定索引,Pandas 会自动创建一个默认的整数索引。

数据类型: Series 可以容纳不同数据类型的元素,包括整数、浮点数、字符串等。

[img]http://p.algo2.net/2024/0306/e440a50767e3a.png[/img]

Series 是 Pandas 中的一种基本数据结构,类似于一维数组或列表,但具有标签(索引),使得数据在处理和分析时更具灵活性。

以下是关于 Pandas 中的 Series 的详细介绍: 创建 Series: 可以使用 pd.Series() 构造函数创建一个 Series 对象,传递一个数据数组(可以是列表、NumPy 数组等)和一个可选的索引数组。[code]pandas.Series( data, index, dtype, name, copy)[/code

]参数说明:

data:一组数据(ndarray 类型)。

index:数据索引标签,如果不指定,默认从 0 开始。

dtype:数据类型,默认会自己判断。

name:设置名称。

copy:拷贝数据,默认为 False。

创建一个简单的 Series 实例:

[code]import pandas as pd

a = [1, 2, 3]

myvar = pd.Series(a)

print(myvar)[/code]输出结果如下:

[img]http://p.algo2.net/2024/0306/e0288b7651054.jpg[/img]

从上图可知,如果没有指定索引,索引值就从 0 开始,我们可以根据索引值读取数据:[code]import pandas as pd

a = [1, 2, 3]

myvar = pd.Series(a)

print(myvar[1])[/code]输出结果如下:[code]2[/code]我们可以指定索引值,如下实例:[code]import pandas as pd

a = ["Google", "Runoob", "Wiki"]

myvar = pd.Series(a, index = ["x", "y", "z"])

print(myvar)[/code]输出结果如下:

[img]http://p.algo2.net/2024/0306/3391c36cbf07d.jpg[/img]

根据索引值读取数据:[code]import pandas as pd

a = ["Google", "Runoob", "Wiki"]

myvar = pd.Series(a, index = ["x", "y", "z"])

print(myvar["y"])[/code]输出结果如下:[code]Runoob[/code]我们也可以使用 key/value 对象,类似字典来创建 Series:[code]import pandas as pd

sites = {1: "Google", 2: "Runoob", 3: "Wiki"}

myvar = pd.Series(sites)

print(myvar)[/code]输出结果如下:

[img]http://p.algo2.net/2024/0306/5e7a271bc4d28.jpg[/img]

从上图可知,字典的 key 变成了索引值。

如果我们只需要字典中的一部分数据,只需要指定需要数据的索引即可,如下实例:[code]import pandas as pd

sites = {1: "Google", 2: "Runoob", 3: "Wiki"}

myvar = pd.Series(sites, index = [1, 2])

print(myvar)[/code]输出结果如下:

[img]http://p.algo2.net/2024/0306/d0db745bd61dc.jpg[/img]

设置 Series 名称参数:[code]import pandas as pd

sites = {1: "Google", 2: "Runoob", 3: "Wiki"}

myvar = pd.Series(sites, index = [1, 2], name="RUNOOB-Series-TEST" )

print(myvar)[/code][img]http://p.algo2.net/2024/0306/f11d6ef2f8207.jpg[/img]

更多 Series 说明

基本操作:[code]# 获取值
value = series[2]  # 获取索引为2的值

# 获取多个值
subset = series[1:4]  # 获取索引为1到3的值

# 使用自定义索引
value = series_with_index['b']  # 获取索引为'b'的值

# 索引和值的对应关系
for index, value in series_with_index.items():
    print(f"Index: {index}, Value: {value}")[/code]基本运算:[code]# 算术运算
result = series * 2  # 所有元素乘以2

# 过滤
filtered_series = series[series > 2]  # 选择大于2的元素

# 数学函数
import numpy as np
result = np.sqrt(series)  # 对每个元素取平方根[/code]属性和方法:[code]# 获取索引
index = series_with_index.index

# 获取值数组
values = series_with_index.values

# 获取描述统计信息
stats = series_with_index.describe()

# 获取最大值和最小值的索引
max_index = series_with_index.idxmax()
min_index = series_with_index.idxmin()[/code]注意事项:

Series 中的数据是有序的。
可以将 Series 视为带有索引的一维数组。
索引可以是唯一的,但不是必须的。
数据可以是标量、列表、NumPy 数组等。

页: [1]