《PySpark大数据分析实战》-23.Pandas介绍DataFrame介绍

news2024/11/18 9:44:08

📋 博主简介

  • 💖 作者简介:大家好,我是wux_labs。😜
    热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
    通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
    通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
    对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。
  • 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
  • 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
  • 🎉 请支持我:欢迎大家 点赞👍+收藏⭐️+吐槽📝,您的支持是我持续创作的动力~🔥

《PySpark大数据分析实战》-23.Pandas介绍DataFrame介绍

  • 《PySpark大数据分析实战》-23.Pandas介绍DataFrame介绍
    • 前言
    • 数据分析库Pandas介绍
      • DataFrame介绍
        • 创建对象
        • 访问数据
        • 数据运算
    • 结束语

《PySpark大数据分析实战》-23.Pandas介绍DataFrame介绍

前言

大家好!今天为大家分享的是《PySpark大数据分析实战》第3章第2节的内容:Pandas介绍DataFrame介绍。

图书在:当当、京东、机械工业出版社以及各大书店有售!

数据分析库Pandas介绍

Pandas是Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。它基于NumPy库构建,使数据操作变得更加简单、快速和直观。Pandas 适用于处理以下类型的数据:

  • 与SQL或Excel表类似的,含异构列的表格数据。
  • 有序和无序(非固定频率)的时间序列数据。
  • 带行列标签的矩阵数据,包括同构或异构型数据。
  • 任意其它形式的观测、统计数据集,数据转入Pandas数据结构时不必事先标记。

要在项目中使用Pandas,需要在Python环境中安装Pandas,命令如下:

$ pip install pandas

在使用时需要在Python脚本中导入pandas,代码如下:

import pandas as pd

Pandas主要提供了两种数据结构:Series和DataFrame。

DataFrame介绍

DataFrame是一种二维的表格型数据结构,类似于SQL表或Excel表格。Pandas数据结构就像是低维数据的容器,比如DataFrame是Series的容器,Series则是标量的容器。使用这种方式,可以在容器中以字典的形式插入或删除对象。一个DataFrame对象可以被视为由许多Series对象组成的字典。

创建对象

Pandas支持通过二维数组、Series、读取本地文件等方式创建DataFrame,创建DataFrame时支持指定行标签和列标签。

在下面的案例中,通过不同的方式创建DataFrame,代码如下:

df1 = pd.DataFrame(np.random.randint(0, 10, (2, 2)), index=['r1', 'r2'], columns=['c1', 'c2'])
print("通过二维数组创建并指定行列标签:\n", df1)

name = pd.Series(['Tom', 'Jack'], name='name')
age = pd.Series([25, 32], name='age')
gender = pd.Series(['F', 'M'], name='gender')
df2 = pd.concat([name, age, gender], axis=1)
print("通过Series创建:\n", df2)

df3 = pd.read_csv("../../../Datasets/AvatarWaterComments.csv")
print("通过读取文件创建:\n", df3.shape)

执行代码,输出结果如下:

通过二维数组创建并指定行列标签:
     c1  c2
r1   5   8
r2   0   7
通过Series创建:
    name  age gender
0   Tom   25      F
1  Jack   32      M
通过读取文件创建:
 (1193, 7)
访问数据

DataFrame对象的每一列可以被当做一个Series对象来访问,可以使用列标签或列名称来访问某一列。

DataFrame对象的每一行可以使用行标签或行索引来访问。在下面的案例中,实现根据标签和索引访问数据,代码如下:

print("通过列标签访问:\n", df1["c1"])
print("通过列名称访问:\n", df1.c1)
print("通过行标签访问:\n", df1.loc["r1"])
print("通过行索引访问:\n", df1.iloc[0])
print("抽样前几行数据:\n", df2.head(1))
print("抽样后几行数据:\n", df2.tail(1))

执行代码,输出结果如下:

通过列标签访问:
 r1    5
r2    0
Name: c1, dtype: int32
通过列名称访问:
 r1    5
r2    0
Name: c1, dtype: int32
通过行标签访问:
 c1    5
c2    8
Name: r1, dtype: int32
通过行索引访问:
 c1    5
c2    8
Name: r1, dtype: int32
抽样前几行数据:
   name  age gender
0  Tom   25      F
抽样后几行数据:
    name  age gender
1  Jack   32      M
数据运算

DataFrame对象可以进行各种运算,例如算术运算、逻辑运算、数学运算等。DataFrame对象的运算方式和Series对象类似,可以根据标签自动对齐值。在下面的案例中,创建了两个DataFrame并进行数据运算,代码如下:

df4 = pd.DataFrame([[1, 5], [7, 2]], index=['r1', 'r2'], columns=['c1', 'c2'])
df5 = pd.DataFrame([[4, 6], [3, 8]], index=['r2', 'r3'], columns=['c1', 'c3'])

print("乘法运算:\n", df4 * 2)
print("加法运算:\n", df4 + df5)
print("逻辑运算:\n", df4 > 4)
print("数学运算:\n", df4.mean())

执行代码,输出结果如下:

乘法运算:
     c1  c2
r1   2  10
r2  14   4
加法运算:
       c1  c2  c3
r1   NaN NaN NaN
r2  11.0 NaN NaN
r3   NaN NaN NaN
逻辑运算:
        c1     c2
r1  False   True
r2   True  False
数学运算:
 c1    4.0
c2    3.5
dtype: float64

结束语

好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1352123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32H5XX和STM32H7XX选型对比

文章目录 STM32H563/H573STM32H743/753对比内核不同H5独有安全管理器H7的外设资源更丰富 STM32H563/H573 STM32H563和STM32H573微控制器扩展了STM32高性能产品组合。这两款微控制器具有增强的性能和安全性、更高的能效和更多的片内外设。 STM32H563/573产品系列提供1至2 MB的…

ChatGPT 4.0真的值得花钱买入吗?

性能提升: ChatGPT 4.0的推出不仅意味着更先进的技术,还代表着更强大的性能。相较于3.5,4.0在处理任务时更为高效,响应更迅速。 更智能的理解: 随着版本的升级,ChatGPT 4.0对语境的理解能力得到了进一步的…

Unity游戏资源更新(AB包)

目录 前言: 一、什么是AssetBundle 二、AssetBudle的基本使用 1.AssetBundle打包 2.BuildAssetBundle BuildAssetBundleOptions BuildTarget 示例 3.AssetBundle的加载 LoadFromFile LoadFromMemory LoadFromMemoryAsync UnityWebRequestAsssetBundle 前…

集群部署篇--Redis 集群动态伸缩

文章目录 前言一、redis 节点的添加1.1 redis 的实例部署:1.2 redis 节点添加:1.3 槽位分配:1.4 添加从节点: 二、redis 节点的减少2.1 移除主节点2.1.1 迁移槽位2.1.1 删除节点: 三、redis 删除节点的重新加入3.1 加入…

【数据不完整?用EM算法填补缺失】期望值最大化 EM 算法:睹始知终

期望值最大化算法 EM:睹始知终 算法思想算法推导算法流程E步骤:期望M步骤:最大化陷入局部最优的原因 算法应用高斯混合模型(Gaussian Mixture Model, GMM)问题描述输入输出Python代码实现 算法思想 期望值最大化方法&a…

odoo17 | 用户界面的基本交互

前言 现在我们已经创建了我们的新模型及其 相应的访问权限,是时候了 与用户界面交互。 在本章结束时,我们将创建几个菜单以访问默认列表 和窗体视图。 数据文件 (XML) Odoo在很大程度上是数据驱动的,因此模块定义的…

桌面天气预报软件 Weather Widget free mac特点介绍

Weather Widget free for Mac多种吸引人的小部件设计可供选择,可以随时了解天气!还可以在Dock和菜单栏中为您提供简短的天气预报或当前状况的概述。 Weather Widget free for Mac软件介绍 始终在桌面上使用时尚的天气小部件来随时了解天气!多…

团结引擎正式发布,已开放下载

2024年1月1日,Unity 正式发布了针对中国开发者的引擎--团结引擎创世版,现在已经可以开放下载,想体验的小伙伴们可以到官网下载了。 团结引擎是专为中国开发者定制的实时3D引擎,目前是基于Unity 2022LTS版本开发的。团结引擎内置了…

我用 Python 自动生成图文并茂的数据分析报告

reportlab是Python的一个标准库,可以画图、画表格、编辑文字,最后可以输出PDF格式。它的逻辑和编辑一个word文档或者PPT很像。有两种方法: 1)建立一个空白文档,然后在上面写文字、画图等; 2)建…

24、Web攻防——通用漏洞SQL注入MYSQL跨库ACCESS偏移

文章目录 一、SQL注入原理   脚本代码在与数据库进行数据通讯时(从数据库取出相关数据进行页面显示),使用预定义的SQL查询语句进行数据查询。能通过参数传递自定义值来实现SQL语句的控制,执行恶意的查询操作,例如查询…

Kali Linux实现UEFI和传统BIOS(Legacy)引导启动

默认Kali linux安装会根据当前启动的引导模式进行安装 例:以UEFI引导启动安装程序,安装后仅能在UEFI引导模式下进入系统 安装Kali系统 这边基于VirtualBox虚拟机镜像实战操作 首先创建一个Kali虚拟机 这里需要注意,把启动 EFI (只针对某些操作系统)选项勾选上,内存、处理器…

TPS5430正负电源模块

TPS5430正负电源模块 Chapter1 TPS5430正负电源模块一、芯片重要参数二、tps5430参考电路讲解以及PCB布局1.正压降压(15V转12V)2.正压降负压(15V转-12V) Chapter2 使用tps5430制作正负DC-DC降压电源,tps7a47和tps7a33制…

使用sdf文件+urdf文件模拟机器人示例(不用把urdf转sdf)

gazebo版本&#xff1a;harmonic&#xff1b; <launch> <group> <let name"robot_description" value"$(command xacro $(find-pkg-share gazebo_pkg)/urdf/total.xacro)"/> <node pkg"rviz2" exec"rviz2" name…

微信公众号内网穿透本地调试微信授权

微信公众号内网穿透本地调试一直以来都比较麻烦 怕自己忘记&#xff0c; 记录一下 准备 natapp获取一个域名隧道下载nginx配置微信公众号web网页授权域名 1.natapp获取一个域名隧道 在natapp官网&#xff08;https://natapp.cn/&#xff09;进行注册登录后&#xff0c;进入…

零售业物流这个防漏水技术,居然没有翻车!

随着科技的不断发展&#xff0c;水浸监控系统在各个领域得到了广泛应用。水浸监控不仅仅是为了保护建筑结构和设备&#xff0c;更是为了防范因水灾引起的生命安全和财产损失。 因此&#xff0c;为了有效预防和应对水浸事件&#xff0c;水浸监控系统应运而生&#xff0c;成为各行…

基于决策树、随机森林和层次聚类对帕尔默企鹅数据分析

作者&#xff1a;i阿极 作者简介&#xff1a;数据分析领域优质创作者、多项比赛获奖者&#xff1a;博主个人首页 &#x1f60a;&#x1f60a;&#x1f60a;如果觉得文章不错或能帮助到你学习&#xff0c;可以点赞&#x1f44d;收藏&#x1f4c1;评论&#x1f4d2;关注哦&#x…

c语言-整型在内存的存储

文章目录 前言一、整型数值在内存中的存储1.1 整型数值的表示形式1.2 二进制的表示形式1.3 整数在内存中存储 二、大端字节序存储和小端字节序存储2.1 大端字节序存储2.2 小端字节序存储2.3 练习 总结 前言 本篇文章叙述c语言中整型数据在内存中的存储方式。 一、整型数值在内…

设计模式:简单工厂模式、工厂方法模式、抽象工厂模式

简单工厂模式、工厂方法模式、抽象工厂模式 1. 为什么需要工厂模式&#xff1f;2. 简单工厂模式2.1. 定义2.2. 代码实现2.3. 优点2.4. 缺点2.5. 适用场景 3. 工厂方法模式3.1. 有了简单工厂模式为什么还需要有工厂方法模式&#xff1f;3.2. 定义3.3. 代码实现3.4. 主要优点3.5.…

在较高时间周期 这些现货黄金投资法值得一用

以日线图和周线图为代表的较高时间周期&#xff0c;一直是投资者很少利用的。之所以这么说&#xff0c;不是说投资者不会在日线图上分析&#xff0c;而是很少利用日线图交易。一来持仓过夜&#xff0c;会有相关的费用产生。二来很多人做现货黄金以短线为主。其实这种较高的时间…

Windows中磁盘未知没有初始化怎么办?

当我们尝试在Windows11/10/8/7上使用外部硬盘驱动器时&#xff0c;在小概率情况下可能会遇到磁盘未知没有初始化情况&#xff0c;此时如果您进入磁盘管理工具中查看&#xff0c;将会发现您的外部硬盘驱动器显示为未知、未初始化、没有磁盘空间&#xff0c;或者在某些情况下它还…