0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

干货:直观地解释和可视化每个复杂的 DataFrame 操作

电子设计 来源:电子设计 作者:电子设计 2020-12-14 21:40 次阅读

大多数数据科学家可能会赞扬Pandas进行数据准备的能力,但许多人可能无法利用所有这些能力。操作数据帧可能很快会成为一项复杂的任务,因此在Pandas中的八种技术中均提供了说明,可视化,代码和技巧来记住如何做。

Pandas提供了各种各样的DataFrame操作,但是其中许多操作很复杂,而且似乎不太平易近人。本文介绍了8种基本的DataFrame操作方法,它们涵盖了数据科学家需要知道的几乎所有操作功能。每种方法都将包括说明,可视化,代码以及记住它的技巧。

Pivot

透视表将创建一个新的“透视表”,该透视表将数据中的现有列投影为新表的元素,包括索引,列和值。初始DataFrame中将成为索引的列,并且这些列显示为唯一值,而这两列的组合将显示为值。这意味着Pivot无法处理重复的值。

旋转名为df的DataFrame的代码如下:

记住:Pivot——是在数据处理领域之外——围绕某种对象的转向。在体育运动中,人们可以绕着脚“旋转”旋转:大熊猫的旋转类似于。原始DataFrame的状态围绕DataFrame的中心元素旋转到一个新元素。有些元素实际上是在旋转或变换的(例如,列“bar”),因此很重要。

Melt

Melt可以被认为是“不可透视的”,因为它将基于矩阵的数据(具有二维)转换为基于列表的数据(列表示值,行表示唯一的数据点),而枢轴则相反。考虑一个二维矩阵,其一维为“B”和“C”(列名),另一维为“a”,“b”和“c”(行索引)。

我们选择一个ID,一个维度和一个包含值的列/列。包含值的列将转换为两列:一列用于变量(值列的名称),另一列用于值(变量中包含的数字)。

结果是ID列的值(a,b,c)和值列(B,C)及其对应值的每种组合,以列表格式组织。

可以像在DataFramedf上一样执行Mels操作:

记住:像蜡烛一样融化(Melt)就是将凝固的复合物体变成几个更小的单个元素(蜡滴)。融合二维DataFrame可以解压缩其固化的结构并将其片段记录为列表中的各个条目。

Explode

是一种摆脱数据列表的有用方法。当一列爆炸时,其中的所有列表将作为新行列在同一索引下(为防止发生这种情况,此后只需调用.reset/_index()即可)。诸如字符串或数字之类的非列表项不受影响,空列表是NaN值(您可以使用.dropna()清除它们)。

在DataFramedf中Explode列“A”非常简单:

要记住:Explode某物会释放其所有内部内容-Explode列表会分隔其元素。

Stack

堆叠采用任意大小的DataFrame,并将列“堆叠”为现有索引的子索引。因此,所得的DataFrame仅具有一列和两级索引。

堆叠名为df的表就像df.stack()一样简单。

为了访问狗的身高值,只需两次调用基于索引的检索,例如df.loc ['dog']。loc ['height']。

要记住:从外观上看,堆栈采用表的二维性并将列堆栈为多级索引。

Unstack

取消堆叠将获取多索引DataFrame并对其进行堆叠,将指定级别的索引转换为具有相应值的新DataFrame的列。在表上调用堆栈后再调用堆栈不会更改该堆栈(原因是存在“0”)。

堆叠中的参数是其级别。在列表索引中,索引为-1将返回最后一个元素。这与水平相同。级别-1表示将取消堆叠最后一个索引级别(最右边的一个)。作为另一个示例,当级别设置为0(第一个索引级别)时,其中的值将成为列,而随后的索引级别(第二个索引级别)将成为转换后的DataFrame的索引。

可以按照与堆叠相同的方式执行堆叠,但是要使用level参数:df.unstack(level = -1)。

Merge

合并两个DataFrame是在共享的“键”之间按列(水平)组合它们。此键允许将表合并,即使它们的排序方式不一样。完成的合并DataFrame默认情况下会将后缀/_x和/_y添加到value列。

为了合并两个DataFramedf1和df2(其中df1包含leftkey,而df2包含rightkey),请调用:

合并不是pandas的功能,而是附加到DataFrame。始终假定合并所在的DataFrame是“左表”,在函数中作为参数调用的DataFrame是“右表”,并带有相应的键。

默认情况下,合并功能执行内部联接:如果每个DataFrame的键名均未列在另一个键中,则该键不包含在合并的DataFrame中。另一方面,如果一个键在同一DataFrame中列出两次,则在合并表中将列出同一键的每个值组合。例如,如果df1具有3个键foo值,而df2具有2个相同键的值,则在最终DataFrame中将有6个条目,其中leftkey = foo和rightkey = foo。

记住:合并数据帧就像在水平行驶时合并车道一样。想象一下,每一列都是高速公路上的一条车道。为了合并,它们必须水平合并。

Join

通常,联接比合并更可取,因为它具有更简洁的语法,并且在水平连接两个DataFrame时具有更大的可能性。连接的语法如下:

使用联接时,公共键列(类似于合并中的right/_on和left/_on)必须命名为相同的名称。how参数是一个字符串,它表示四种连接方法之一,可以合并两个DataFrame:

'left':包括df1的所有元素,仅当其键为df1的键时才包含df2的元素。否则,df2的合并DataFrame的丢失部分将被标记为NaN。

'right':'left',但在另一个DataFrame上。包括df2的所有元素,仅当其键是df2的键时才包含df1的元素。

“outer”:包括来自DataFrames所有元素,即使密钥不存在于其他的-缺少的元素被标记为NaN的。

“inner”:仅包含元件的键是存在于两个数据帧键(交集)。默认合并。

记住:如果您使用过SQL,则单词“ join”应立即与按列添加相联系。如果不是,则“ join”和“ merge”在定义方面具有非常相似的含义。

Concat

合并和连接是水平工作,串联或简称为concat,而DataFrame是按行(垂直)连接的。例如,考虑使用pandas.concat([df1,df2])串联的具有相同列名的两个DataFramedf1和df2:

尽管可以通过将axis参数设置为1来使用concat进行列式联接,但是使用联接会更容易。

请注意,concat是pandas函数,而不是DataFrame之一。因此,它接受要连接的DataFrame列表。

如果一个DataFrame的另一列未包含,默认情况下将包含该列,缺失值列为NaN。为了防止这种情况,请添加一个附加参数join ='inner',该参数只会串联两个DataFrame共有的列。

切记:在列表和字符串中,可以串联其他项。串联是将附加元素附加到现有主体上,而不是添加新信息(就像逐列联接一样)。由于每个索引/行都是一个单独的项目,因此串联将其他项目添加到DataFrame中,这可以看作是行的列表。

Append是组合两个DataFrame的另一种方法,但它执行的功能与concat相同,效率较低且用途广泛。

-

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7006

    浏览量

    88955
收藏 人收藏

    评论

    相关推荐

    什么是大屏数据可视化?特点有哪些?

    大屏数据可视化是指通过大屏幕展示大量数据和信息,以直观可视化的方式帮助用户理解和分析数据。这种展示方式通常用于展示复杂的数据集、实时监控系统、企业管理仪表盘等。以下是关于 大屏数据
    的头像 发表于 12-16 16:59 145次阅读

    如何找到适合的大屏数据可视化系统

    选择合适的大屏数据可视化系统是企业或组织在数字转型过程中至关重要的一步。一个优秀的大屏数据可视化系统能够实时呈现关键业务数据,提升决策效率,同时提供直观、易于理解的视觉呈现,助力企业
    的头像 发表于 12-13 15:47 115次阅读

    智慧楼宇可视化的优点

    智慧楼宇可视化是指通过数据可视化技术来展示和分析楼宇的各种数据,为楼宇管理者和用户提供直观、清晰的信息展示和决策支持。以下是智慧楼宇可视化的优点,详细介绍其在楼宇管理和运营中的重要作用
    的头像 发表于 11-19 14:25 180次阅读

    智慧园区数据可视化优势体现在哪些地方

    智慧园区数据可视化是当今数字化时代的重要工具,为园区管理者和决策者提供了强大的分析和展示数据的能力。以下是智慧园区数据可视化的应用优势,详细介绍: 1.信息呈现清晰直观:智慧园区数据可视化
    的头像 发表于 11-15 10:30 171次阅读
    智慧园区数据<b class='flag-5'>可视化</b>优势体现在哪些地方

    开关柜可视化操作是什么?

    开关柜的可视化是指通过图像、视频或3D模型等形式将开关柜内部结构和工作状态直观地展示出来,这种技术在电力行业和工业自动领域越来越受到重视
    的头像 发表于 07-25 10:15 263次阅读
    开关柜<b class='flag-5'>可视化</b><b class='flag-5'>操作</b>是什么?

    三维可视化运用的主要技术

    三维可视化技术是一种强大的工具,可用于呈现复杂的数据和概念,使人们能够更直观地理解信息。在当今数字化时代,三维可视化已经成为许多领域中不可或缺的技术,包括工程、医学、地理信息系统、游戏
    的头像 发表于 07-19 13:56 281次阅读

    三维可视化的魅力与应用

    三维可视化是一种强大的工具,它融合了艺术、科学和技术,通过在三维空间中呈现数据、概念和想法,为人们提供了一种直观而生动的方式来理解和探索信息。这项技术在当今世界中的应用非常广泛,涵盖了科学、教育
    的头像 发表于 07-17 14:19 257次阅读

    大屏数据可视化 开源

    在当今信息爆炸的时代,数据已经成为各个行业决策制定和业务发展的关键。为了更直观、准确地理解和利用海量数据, 大屏数据可视化 成为一种强大的工具。通过将数据以图表、图形等形式展示在大屏幕上,不仅
    的头像 发表于 06-27 16:06 404次阅读
    大屏数据<b class='flag-5'>可视化</b> 开源

    三维可视化系统平台介绍及优势

    、医学影像、地理信息系统、虚拟现实等领域。下面将详细介绍三维可视化系统平台的优势以及其在不同领域的应用。 三维可视化系统平台的优势: 1.直观性: 三维可视化系统平台能够将
    的头像 发表于 06-12 16:02 615次阅读
    三维<b class='flag-5'>可视化</b>系统平台介绍及优势

    态势数据可视化技术有哪些

    智慧华盛恒辉态势数据可视化技术是一种将数据以图形、图像、动画等视觉形式展现出来的技术,特别是在处理和分析态势数据时,该技术能够将复杂的数据转化为直观、易于理解的视觉表现。以下是态势数据可视化
    的头像 发表于 06-11 15:47 371次阅读

    大屏数据可视化的作用和意义

    大屏数据可视化是指利用大屏幕设备展示数据信息,通过图表、图像、动画等视觉手段将数据呈现出来,以便用户能够直观、清晰地理解数据背后的含义和关联。在信息化时代,数据已经成为企业决策和运营的重要依托,而
    的头像 发表于 06-03 17:56 663次阅读

    三维可视化的优势有哪些?

    三维可视化 是一种强大的工具,能够帮助人们更好地理解复杂数据和概念。它通过在三维空间中呈现信息,使观察者能够以更直观、更深入的方式探索数据。以下是三维可视化的一些优势,涵盖了多个领域:
    的头像 发表于 05-28 17:03 676次阅读
    三维<b class='flag-5'>可视化</b>的优势有哪些?

    智慧城市-可视化,进一步提高信息建设水平

    智能城市可视化是指整合各种城市信息资源,以地图、虚拟现实等形式展示各种城市数据,更直观地了解和管理城市的运行和发展。智能城市可视化主要通过地理信息系统(GIS)、实现大数据、虚拟现实等技术,呈现城市
    的头像 发表于 05-22 16:49 441次阅读

    三维可视化是怎么做的?特点有哪些?

    的应用场景中占据着重要部分,很多业务都需要以三维可视化的方式呈现与交互,它能够帮助用户更直观地理解复杂的数据和信息。以下是关于三维可视化的三维地图的制作过程以及功能特点: 三维地图制作
    的头像 发表于 04-28 15:12 489次阅读
    三维<b class='flag-5'>可视化</b>是怎么做的?特点有哪些?

    态势数据可视化技术有哪些

    智慧华盛恒辉态势数据可视化技术是一种将复杂、动态的态势数据以直观、易于理解的方式展现出来的技术手段。以下是几种主要的态势数据可视化技术: 网络安全态势指标
    的头像 发表于 04-22 15:17 401次阅读