当前位置: 首页 > news >正文

Polars简明基础教程八:Series 和 DataFrame 以及它们之间的转换_B

在Series和DataFrame列之间进行转换

我们先使用方括号从 DataFrame 的列中创建一个Series

(df["age"].head(3)
)

请注意,Series有一个名称(age)和一个数据类型(64位浮点数)。

我们还可以使用to_series从单列的DataFrame中创建一个Series(我们将在本课程的下一节中进一步学习select方法)

(df.select("age").to_series().head(3)
)

我们可以使用to_frame将Series转换为单列的DataFrame

s = df["name"]
(s.to_frame().head(3)
)

从list或dict创建Series或DataFrame

我们可以从Python的list中创建一个Series

values = [1,2,3]
pl.Series(values)

如果没有设置name参数,那么它默认为空字符串。名称可以作为第一个参数传递

pl.Series('vals',values)

我们还可以使用to_list将Series转换为list

pl.Series(name='vals',values=values).to_list()

在“选择列和转换DataFrame”部分中,我们将看到如何从列表中向DataFrame添加列。

我们可以使用以下方法创建DataFrame:

  1. 使用lists的list,其中每个list代表一列,
  2. 使用字符串列名的列表
data = [[1,2,3],[4,5,6]
]
(pl.DataFrame(data,schema=["col0","col1"])
)

我们还可以从dict中创建一个DataFrame

data_dict = {"col0":[1,2,3],"col1":[4,5,6]}
(pl.DataFrame(data_dict,)
)

我们可以通过将dict传递给schema参数来指定数据类型。在这个例子中,我们为col1列指定了一个32位整数类型

data_dict = {"col0":[1,2,3],"col1":[4,5,6]}
(pl.DataFrame(data_dict,schema={"col0":pl.Int64,"col1":pl.Int32})
)

最后,我们可以使用to_dicts方法将DataFrame作为dicts的list获取

df = (pl.DataFrame(data_dict,)
)
df.to_dicts()

to_dicts的输出对于测试非常有用。在GitHub上Polars仓库的自动化测试(以及本课程材料的自动化测试)中,查询的输出通常使用to_dicts进行测试,如下所示:

assert df.to_dicts() == [{'col0': 1, 'col1': 4}, {'col0': 2, 'col1': 5}, {'col0': 3, 'col1': 6}]

在以后的文章中,我们将单独出一节的篇幅对 to_dicts 进行阐述。

在练习中,我们将看到如何从dict中创建一个DataFrame。

练习

在练习中,您将加深对以下内容的理解:

  • 从DataFrame中提取Series
  • 从Series中获取元数据
  • 从list创建Series
  • 从lists创建DataFrames

练习 1

从DataFrame中提取Age列作为Series,然后找到:

Series的dtype

Series的中位数

df = pl.read_csv(csv_file)s = <blank>
df = pl.read_csv(csv_file)s = <blank>

练习 2

你有以下包含数据的Python lists。

groups = ["a","a","b","b","c"]
values = [0,1,2,3,4]

从groups列表中创建一个名为groupsSeries的Series。Series中的名称应为groups。

通过将这些内容作为Python dict传递给pl.DataFrame,来创建一个DataFrame

解决方案

练习 1 的解决方案

从DataFrame中提取Age列作为Series,并找到:

Series的dtype(数据类型)

Series的中位数

df = pl.read_csv(csv_file)
s = df["Age"]
s.dtype
df = pl.read_csv(csv_file)
s = df["Age"]
s.median()

练习 2 的解决方案

你有以下包含数据的 Python lists。

groups = ["a","a","b","b","c"]
values = [0,1,2,3,4]

从groups列表创建一个名为groups_series的Series。Series内部的名称应为groups。

groups_series = pl.Series("groups",groups)

通过将这些作为Python dict传递给pl.DataFrame来创建一个DataFrame。

pl.DataFrame({"groups":groups,"vals":values}
)

Polars简明基础教程系列

Polars简明基础教程一:Polars快速入门

Polars简明基础教程二:懒惰模式 1:引入懒惰模式

Polars简明基础教程三:懒惰模式 1:引入懒惰模式(续)

Polars简明基础教程四:懒惰模式 2:评估查询

Polars简明基础教程五:什么是Polars的“DataFrame(数据框)_上”

Polars简明基础教程六:什么是Polars的“DataFrame(数据框)_下”

Polars简明基础教程七:Series 和 DataFrame 以及它们之间的转换_A

Polars简明基础教程八:Series 和 DataFrame 以及它们之间的转换_B

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt窗口交互场景、子窗口数据获取
  • AcWing 723. PUM
  • 改善工作流
  • Spring Boot如何实现数据脱敏?
  • 在Spring Boot中使用MyBatis实现复杂查询和分页功能
  • Java基础之循环嵌套
  • K8S学习笔记(自用,不定期更新)
  • Docker-命令
  • Tomcat初篇
  • Java 网络编程练习
  • 新天龙八部3江山策仿官方+单机联网+GM工具
  • 【抓包】- Fiddler抓包教程,使用Fiddle抓取B站视频;ffmpeg的使用方法
  • Eureka入门指南:微服务注册与发现的基础概念
  • 软件开发感悟
  • go注册到eureka微服务
  • [数据结构]链表的实现在PHP中
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • CentOS 7 修改主机名
  • CentOS6 编译安装 redis-3.2.3
  • CentOS从零开始部署Nodejs项目
  • Create React App 使用
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript 基本功--面试宝典
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Laravel 实践之路: 数据库迁移与数据填充
  • Solarized Scheme
  • 前言-如何学习区块链
  • Nginx实现动静分离
  • #{} 和 ${}区别
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #QT项目实战(天气预报)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (007)XHTML文档之标题——h1~h6
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (C++二叉树05) 合并二叉树 二叉搜索树中的搜索 验证二叉搜索树
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (pojstep1.1.2)2654(直叙式模拟)
  • (二十四)Flask之flask-session组件
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (南京观海微电子)——示波器使用介绍
  • (十一)c52学习之旅-动态数码管
  • (四)linux文件内容查看
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core Web APi类库如何内嵌运行?
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET NPOI导出Excel详解
  • .net 调用海康SDK以及常见的坑解释
  • .NET 读取 JSON格式的数据
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET实现之(自动更新)
  • .net图片验证码生成、点击刷新及验证输入是否正确