891 字
4 分钟
polars学习-05_包含的数据结构
背景
polars学习系列文章,第5篇 包含的数据结构,与 pandas 一样,polars 包含的数据结构是:Series、DataFrame,大部分操作与pandas 保持一致,减少了大家的学习难度
该系列文章会分享到github,大家可以去下载jupyter文件,进行参考学习
小编运行环境
import sys
print('python 版本:',sys.version.split('|')[0])#python 版本: 3.11.9
import polars as pl
print("polars 版本:",pl.__version__)#polars 版本: 0.20.22Series 数据列
Series 是一维的数据结构,其有相同的数据类型,可以理解为数据库中的一列
import polars as pl
s = pl.Series("a", [1, 2, 3, 4, 5])print(s)
shape: (5,)Series: 'a' [i64][ 1 2 3 4 5]数据列的操作
print(s.min()) #1print(s.max()) #5print(s.mean()) #3.0print(s.count()) #5DataFrame 数据框
DataFrame 是一个二维的数据结构,其是由一系列的 Series 组成,可以理解为一张数据表,包含很多列
from datetime import datetime
df = pl.DataFrame( { "integer": [1, 2, 3, 4, 5], "date": [ datetime(2022, 1, 1), datetime(2022, 1, 2), datetime(2022, 1, 3), datetime(2022, 1, 4), datetime(2022, 1, 5), ], "float": [4.0, 5.0, 6.0, 7.0, 8.0], })
print(df)
shape: (5, 3)┌─────────┬─────────────────────┬───────┐│ integer ┆ date ┆ float ││ --- ┆ --- ┆ --- ││ i64 ┆ datetime[μs] ┆ f64 │╞═════════╪═════════════════════╪═══════╡│ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 ││ 2 ┆ 2022-01-02 00:00:00 ┆ 5.0 ││ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 ││ 4 ┆ 2022-01-04 00:00:00 ┆ 7.0 ││ 5 ┆ 2022-01-05 00:00:00 ┆ 8.0 │└─────────┴─────────────────────┴───────┘Head
默认展示前5行数据,也可以传出要展示的行数
print(df.head())#shape: (5, 3)┌─────────┬─────────────────────┬───────┐│ integer ┆ date ┆ float ││ --- ┆ --- ┆ --- ││ i64 ┆ datetime[μs] ┆ f64 │╞═════════╪═════════════════════╪═══════╡│ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 ││ 2 ┆ 2022-01-02 00:00:00 ┆ 5.0 ││ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 ││ 4 ┆ 2022-01-04 00:00:00 ┆ 7.0 ││ 5 ┆ 2022-01-05 00:00:00 ┆ 8.0 │└─────────┴─────────────────────┴───────┘
print(df.head(3))#shape: (3, 3)┌─────────┬─────────────────────┬───────┐│ integer ┆ date ┆ float ││ --- ┆ --- ┆ --- ││ i64 ┆ datetime[μs] ┆ f64 │╞═════════╪═════════════════════╪═══════╡│ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 ││ 2 ┆ 2022-01-02 00:00:00 ┆ 5.0 ││ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 │└─────────┴─────────────────────┴───────┘Tail
默认展示最后5行数据,也可以传出要展示的行数
print(df.tail())#shape: (5, 3)┌─────────┬─────────────────────┬───────┐│ integer ┆ date ┆ float ││ --- ┆ --- ┆ --- ││ i64 ┆ datetime[μs] ┆ f64 │╞═════════╪═════════════════════╪═══════╡│ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 ││ 2 ┆ 2022-01-02 00:00:00 ┆ 5.0 ││ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 ││ 4 ┆ 2022-01-04 00:00:00 ┆ 7.0 ││ 5 ┆ 2022-01-05 00:00:00 ┆ 8.0 │└─────────┴─────────────────────┴───────┘
print(df.tail(3))#shape: (3, 3)┌─────────┬─────────────────────┬───────┐│ integer ┆ date ┆ float ││ --- ┆ --- ┆ --- ││ i64 ┆ datetime[μs] ┆ f64 │╞═════════╪═════════════════════╪═══════╡│ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 ││ 4 ┆ 2022-01-04 00:00:00 ┆ 7.0 ││ 5 ┆ 2022-01-05 00:00:00 ┆ 8.0 │└─────────┴─────────────────────┴───────┘Sample 随机抽样
print(df.sample(3))#shape: (3, 3)┌─────────┬─────────────────────┬───────┐│ integer ┆ date ┆ float ││ --- ┆ --- ┆ --- ││ i64 ┆ datetime[μs] ┆ f64 │╞═════════╪═════════════════════╪═══════╡│ 5 ┆ 2022-01-05 00:00:00 ┆ 8.0 ││ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 ││ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 │└─────────┴─────────────────────┴───────┘Describe 数据概况
print(df.describe())#shape: (9, 4)┌────────────┬──────────┬─────────────────────┬──────────┐│ statistic ┆ integer ┆ date ┆ float ││ --- ┆ --- ┆ --- ┆ --- ││ str ┆ f64 ┆ str ┆ f64 │╞════════════╪══════════╪═════════════════════╪══════════╡│ count ┆ 5.0 ┆ 5 ┆ 5.0 ││ null_count ┆ 0.0 ┆ 0 ┆ 0.0 ││ mean ┆ 3.0 ┆ 2022-01-03 00:00:00 ┆ 6.0 ││ std ┆ 1.581139 ┆ null ┆ 1.581139 ││ min ┆ 1.0 ┆ 2022-01-01 00:00:00 ┆ 4.0 ││ 25% ┆ 2.0 ┆ 2022-01-02 00:00:00 ┆ 5.0 ││ 50% ┆ 3.0 ┆ 2022-01-03 00:00:00 ┆ 6.0 ││ 75% ┆ 4.0 ┆ 2022-01-04 00:00:00 ┆ 7.0 ││ max ┆ 5.0 ┆ 2022-01-05 00:00:00 ┆ 8.0 │└────────────┴──────────┴─────────────────────┴──────────┘历史相关文章
- Python polars学习-01 读取与写入文件
- Python polars学习-02 上下文与表达式
- Python polars学习-03 数据类型转换
- Python polars学习-04 字符串数据处理
以上是自己实践中遇到的一些问题,分享出来供大家参考学习,欢迎关注微信公众号:DataShare ,不定期分享干货