说明
《Python Polars》 教程正在筹划更新中,敬请期待!Polars 是一个高性能的数据处理库,特别适用于大数据集和需要并行计算的场景。如果你在处理大数据时遇到性能瓶颈,可以考虑尝试 Polars,它的延迟计算和并行化机制可以显著提升处理效率。
Series 是 Polars 提供的核心基础数据结构之一,可以看作是一列数据,类似于 Pandas 的 pd.Series
。
它的设计特点如下:
一维结构
Series 是一个一维的数据结构,用于存储一组线性排列的数据。
同质性(Homogeneous)
功能强大
Series 支持各种操作,例如:
灵活的数据类型支持
Series 支持 Polars 的所有内部数据类型,包括数值类型(如 Int64
、Float32
)、字符串类型(Utf8
)、时间类型(Date
、Datetime
)、嵌套类型(List
、Struct
)等。
创建一个 Series:
import polars as pl
# 创建一个整数 Series
s = pl.Series("numbers", [1, 2, 3, 4, 5])
print(s)
'''
shape: (5,)
Series: 'numbers' [i64]
[
1
2
3
4
5
]
'''
常用操作:
# 获取数据类型
print(s.dtype) # 输出: Int64
# 获取数据名称
print(s.name) # 输出: numbers
# 获取数据的形状
print(s.shape) # 输出: (5,)
# 执行矢量化操作
print(s * 2) # 输出: [2, 4, 6, 8, 10]
'''
shape: (5,)
Series: 'numbers' [i64]
[
2
4
6
8
10
]
'''
# 筛选操作
print(s.filter(s > 3)) # 输出: [4, 5]
'''
shape: (2,)
Series: 'numbers' [i64]
[
4
5
]
'''
在 Polars 中,可以通过多种方式创建一个 Series
,具体取决于数据的来源和需要的类型。以下是一些常用方法:
最常见的方式是直接从一个 Python 列表创建 Series
。
import polars as pl
# 创建一个整数 Series
s = pl.Series("numbers", [1, 2, 3, 4, 5])
print(s)
输出:
shape: (5,)
Series: 'numbers' [i64]
[
1
2
3
4
5
]
可以使用单一标量值创建一个重复元素的 Series
。
# 创建一个重复值的 Series
s = pl.Series("repeated", value=10, length=5)
print(s)
输出:
shape: (5,)
Series: 'repeated' [i64]
[
10
10
10
10
10
]
可以通过参数指定 Series
的数据类型。
# 创建一个浮点数 Series
s = pl.Series("floats", [1, 2, 3, 4, 5], dtype=pl.Float64)
print(s)
输出:
shape: (5,)
Series: 'floats' [f64]
[
1.0
2.0
3.0
4.0
5.0
]
Polars 与 NumPy 集成,可以直接使用 NumPy 数组创建 Series
。
import numpy as np
# 从 NumPy 数组创建 Series
array = np.array([1, 2, 3, 4, 5])
s = pl.Series("from_numpy", array)
print(s)
如果已经有一个 Pandas 的 pd.Series
,可以轻松转换为 Polars 的 Series
。
import pandas as pd
# 创建一个 Pandas Series
pd_series = pd.Series([1, 2, 3, 4, 5])
# 转换为 Polars Series
s = pl.Series("from_pandas", pd_series)
print(s)
虽然 Series
通常是单列数据,但可以结合键值对的形式快速生成。
data = {"a": [1, 2, 3], "b": [4, 5, 6]}
s = pl.DataFrame(data)["a"] # 提取一列作为 Series
print(s)
Polars 提供了多种方式灵活创建 Series
,无论是从列表、标量、NumPy 数组还是 Pandas 的数据,都能快速构造适配 Polars 的高性能数据结构。用户可以根据场景选择最适合的方法。
总结来说,Polars 的 Series 是一个高效、灵活的一维数据容器,是处理大规模数据的理想选择。
更新时间:2024-12-08 19:59:54 标签:polars python series