ShowMeAI-人工智能工具笔记-十三-
ShowMeAI 人工智能工具笔记(十三)
官方教程来啦!5位 Hugging Face 工程师带你了解 Transformers 原理细节及NLP任务应用!<官方教程系列> - P5:L1.5- Transformer:编码器 - ShowMeAI - BV1Jm4y1X7UL
在这个视频中,我们将研究编码器架构。一个流行的独立架构的例子是Bt,它是该类型中最受欢迎的模型。让我们先了解它是如何工作的。我们将使用一个小例子,使用三个单词作为输入,并将它们通过编码器传递。
我们检索每个单词的数值表示。例如,这里编码器将这三个单词“欢迎来到纽约”转换为这三个数字序列。编码器为每个输入单词输出一个数字序列。这个数值表示也可以称为特征向量或特征张量。
让我们深入研究这个表示。它包含每个通过编码器传递的单词的一个向量。每个向量都是所讨论单词的数值表示。该向量的维度由模型的架构定义,对于基础Bert模型,它是768。这些表示包含了单词的值,但在上下文中。例如。
分配给word2的向量不仅是两个单词的表示。它还考虑到周围的单词,这就是我们所称的上下文。它查看左侧上下文,即我们研究的单词左边的单词。在这里是“欢迎”这个词,以及右侧的上下文,这里是“纽约”这个词。
它为给定上下文的单词输出一个值。因此,这是一个上下文化的值。😊可以说,768个值的向量在文本中承载了单词的意义。它是通过自注意力机制实现的。自注意力机制与单个序列中不同位置或不同单词相关联,以计算该序列的表示。
正如我们之前所见,这意味着单词的最终表示受到了序列中其他单词的影响。😊我们在这里不会深入这些细节,但如果你想更好地理解其内部机制,我们会提供一些进一步的阅读资料。
那么,什么时候应该使用编码器呢?编码器可以作为独立模型在多种任务中使用。😊例如,Bert,毫无疑问是最著名的变换器模型,是一个独立的基准模型。在发布时,它在许多序列分类任务、问答任务和掩蔽语言建模等方面处于最先进水平,仅举几例。😊
这个想法是,编码器在提取携带序列有意义信息的向量方面非常强大。然后,这个向量可以由后续神经元进行处理,以理解这些信息。让我们看看一些编码器表现出色的例子。首先,掩蔽语言建模或MLM。这是预测序列中隐藏词语和单词序列的任务。在这里。
例如,我们隐藏了“my”和“is”之间的词。这是Bert训练的目标之一。它被训练用于预测序列中的隐藏词。编码器在这个场景中特别出色,因为双向信息在这里至关重要。如果我们没有右边的单词“is Silva”和句号。
那么Bt几乎没有可能能够识别“name”作为正确的单词。编码器需要对序列有良好的理解,以便预测一个被屏蔽的词,因为即使文本在语法上是正确的,它在序列的上下文中也不一定有意义。正如之前提到的,编码器擅长进行序列分类。😊
情感分析是序列分类的一个例子。模型的目标是识别序列的情感。它可以用于评估分析时给序列打分(从一到五颗星),或对序列进行正面或负面的评价,这就是这里所展示的。例如,给定这两个序列。
我们使用模型来计算预测,并将序列分类为这两类:正面和负面。虽然这两个序列非常相似,包含相同的单词,但意义完全不同,而编码器模型能够抓住这种差异。
。
官方教程来啦!5位 Hugging Face 工程师带你了解 Transformers 原理细节及NLP任务应用!<官方教程系列> - P9:L2.2- 管道函数内部会发生什么?(TensorFlow) - ShowMeAI - BV1Jm4y1X7UL
在pipelineplan函数内部发生了什么?在这个视频中,我们将看看当我们使用transformers库的pipeline函数时,实际发生了什么。更具体地说,我们将查看科学分析管道,了解它是如何从以下两个句子转化为积极和消极标签及其相应的分数。
正如我们在pipeline视频中看到的,管道中有三个阶段。首先,我们通过使用标记器将文本转化为模型可以理解的数字。然后,这些数字与模型进行交互,输出标签。最后,处理步骤将这些标签转化为分类和得分。
让我们详细看看这三个步骤以及如何在transformers库中复制它们,首先是第一阶段的标记化。
标记化过程包含几个步骤,首先,文本被拆分成称为token的小块。它们可以是单词、词的一部分或标点符号。然后,标记器会添加一些模型所期望的特殊标记。在这里,所使用的模型在句子的开头期望一个CS标记,在结尾期望一个s标记以进行分类。
最后,标记器将每个标记与预训练模型词汇中的唯一ID进行匹配。
要加载这样的标记器,transformers库提供了autotokenizer API。该API中最重要的方法是from betray trade,它将下载并缓存与给定检查点相关的配置和词汇。在这里,默认用于情感分析管道的检查点是dist belt paste和case fine tune SS through English。
这有点难以表达。我们实例化与检查点关联的标记,然后输入这两个句子。由于这两个句子的长度不同,我们需要对较短的句子进行填充,以便能够形成一个数组。这是通过标记器进行的,使用ytion,填充相等。通过truation相等。
我们确保任何超过模型最大处理能力的句子都会被截断。最后,returntensil选项告诉标记器返回一个由doch tensil构成的数组。查看结果,我们可以看到我们有一个包含两个键的字典。Input IDs包含两个句子的ID,其中填充的部分为零。第二个键attention mask指示填充的应用位置。
因此,模型不会对此给予关注。
这始终是组织步骤中的内容。
现在让我们看一下第二步。模型。
至于tokenizer,使用newmod API和between方法。它将下载并缓存模型的配置以及预训练权重。然而,Auto API仅实例化模型的主体。即在去除预训练边缘后剩下的模型部分。
它将输出一个高维张量,表示句子的过去,但这对于分类问题并没有直接用处。这里的张量有两个句子,每个有16个标记,最后的维度是模型的大小,768。
为了获得与我们的分类问题相关的输出链接,我们需要使用序列分类类的Automod。它的工作方式与零到模型类完全相同,只是它将构建一个带有分类头的模型。价格1不是Transformers库中每个常见LLP任务的类。
在给我们的模型两个句子后,我们得到了大小为2x2的张量源。每个句子和每个可能标签的一个结果。这些输出还不是概率,我们可以看到它们的总和不为1。这是因为transformer库的每个模型返回logits。为了理解这些,我们需要深入挖掘管道的最后一步。
加上处理。为了将logits转换为概率,我们需要对其应用一个C max层。正如我们所看到的,这将其转换为正数,使它们的总和为1。最后一步是知道哪些对应于正标签或负标签。
这由模型配置的ID2lipold字段给出。第一个概率是索引0,对应于负标签,第二个索引1对应于正标签。这就是我们的分类器如何通过管道函数构建的,选择标签并计算vicos。
现在你知道每个步骤是如何工作的,你可以轻松调整它们以满足你的需求。
嗯。
官方教程来啦!5位 Hugging Face 工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P2:L1.2- Hugging Face流水线功能 - ShowMeAI - BV1Jm4y1X7UL
它的类型是端到端功能。管道函数是Transformers库中最高级别的API。它将所有步骤聚合在一起,从输入到可用预测。我们使用的是管道的核心,但管道还包含所有必要的预处理,因为模型并不期望文本而是数字。同时还进行一些后处理,使模型的输出更易于人类理解。
让我们来看一下保罗在情感分析管道中的第一个示例。这个管道对给定的输入进行文本分类,并确定其是正面还是负面。在这里,它将正面标签归因于给定文本,置信度为95%。你可以将多个文本传递给同一个管道,这些文本将作为一个批次一起处理并传递给模型。
输出是一个与输入文本顺序相同的个体结果列表。在这里,我们发现第一个文本的标签和分数是相同的,而第二个文本的标签是负面的,置信度为99.9%。零样本分类管道是一种更通用的文本分类管道。
它允许你提供所需的标签。在这里,我们希望根据教育、政治和商业的标签对输入文本进行分类。管道成功识别出它更侧重于教育而不是其他标签,置信度为84%。接下来,我们的任务是文本生成管道,它会完成给定的提示。输出是带有一点随机性的,因此每次调用生成器对象时,生成的结果都会有所变化。
到目前为止,我们已经使用默认模型的Bplan API与每个任务相关联。但你可以将其与任何已经预训练或微调过的模型一起使用。接下来是模型H,再次是F的slash模型。你可以根据任务过滤可用模型。我们之前示例中使用的默认模型是GPT2。
但还有更多模型可用,不仅仅是英语。让我们回到下一个生成管道,并用另一个模型dist GPT2加载它。这个模型是由Hugging Face团队创建的更轻量版GPT2。在将管道应用于给定提示时,我们可以指定多个参数。
例如生成文本的最大长度,以及我们希望返回的句子数量,因为生成中存在一定的随机性。生成文本的目标是X2的推测,这是GPD2的目标。在这种情况下,我们询问模型两个最有可能的缺失单词的值。
并获得尽可能的数学或计算答案。任务转换模型的功能是对句子中的每个单词进行分类,而不是将整个句子视为一个墙壁。这方面的一个例子是命名实体识别。其任务是识别句子中的实体,如人、组织或地点。在这里,模型正确找到了人,sva。
该组织,再次面对,输入文本中的布鲁克林位置。该组实体的 equal2 参数用于将管道组合在一起,连接到同一实体的不同墙壁,例如这里的 eggging 和 face。与 byg API 相关的另一个可用任务是提取式问题和抱歉。提供上下文和问题后,模型将识别上下文中包含答案的文本跨度。
获取非常简短的摘要也是 Transers 库可以通过摘要 bike 帮助实现的事情。最后,管道 API 支持的最后一个任务是翻译。在这里,我们使用在 Mo hub 上找到的法英模型来获取输入文本的英文版本。以下是我们在本视频中探讨的所有任务的简要总结。Drave my mode。
因此,受现代中心的影响切换喷气机。
。
官方教程来啦!5位 Hugging Face 工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P21:L3.4-训练器Trainer API - ShowMeAI - BV1Jm4y1X7UL
Saattrino EPA。所以Transforms库提供了一个Trainer API,允许你轻松地在你的数据集上微调变换模型。因此训练你的类,确保设置你的模型,以及训练IP参数。可以在任何类型的设置上执行训练,CPU、GPU、多GPU、TUus。还可以在任何数据集上计算预测,如果你提供了矩阵。
在任何数据集上评估你的模型。只要你提供了一个分词器或给定数据处理工具,你也可以安装最终的数据处理,如动态填充。在MRRPC数据集中调用API,因为它相对较小且易于预处理。
正如我们在数据集的视频集中看到的,或者我们可以提出。你在预处理期间不应用填充,因为我们将在数据处理之前使用动态填充。请注意,我们不执行重命名、移除ins的最终步骤,或者将格式设置为torch tensils。因此,训练器将通过分析模型签名自动为我们完成所有这些。
创建训练器之前的最后一步是定义模型和一些训练参数。我们在模型API视频中看到了如何做第一步。对于第二步,我们使用训练参数类,它只需要一个文件夹路径,结果和检查点将被保存,但你也可以自定义训练器将使用的所有参数学习率。
训练次数等。创建一个训练器并启动训练非常简单。这应该显示你的进度条,如果你在GPU上运行,几分钟后你应该完成训练。然而,结果可能会让人失望,因为你只会得到一个训练类,这并不能告诉你模型表现得如何。
这是因为我们没有指定任何评估的指标。要获取这个矩阵,我们首先将使用Preic方法覆盖墙评估集上的预测。它返回一个包含三个字段预测的名称,其中包含模型预测,label Is,它包含你在那个时刻的标签,以及这里为空的矩阵。
我们正在尝试这样做。预测是模型对数据集中所有句子的预测结果,所以是一个形状为48乘以2的数组。为了将它们与我们的标签匹配,我们需要对每个预测取最大值,以知道预测的是哪两个类中的哪一个。我们用max函数来完成这个操作。然后我们可以使用数据集库中的矩阵。
它可以像加载数据集一样轻松加载,并且返回用于数据集的评估指标。我们可以看到我们的模型确实学到了一些东西,因为它的准确率为85.7%。为了在20个评估矩阵中进行监控,我们需要定义一个计算矩阵函数,但与之前的步骤相同。
需要一个名称来对标签进行预测,并且必须返回一个字典,以跟踪我们想要记录的指标。通过将周期评估策略传递给我们的训练参数,我们告诉训练器在每个周期结束时进行评估。在笔记本中启动训练将显示一个进度条,并在你通过每个周期时完成你在这里看到的表格。
。
官方教程来啦!5位Hugging Face工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P11:L2.4- 实例化transformer模型(TensorFlow) - ShowMeAI - BV1Jm4y1X7UL
如何实例化下面的transformers。在这个视频中,我们将看看如何从Transforms库创建和使用模型。正如我们之前看到的,TF照片模型Gla允许你从任何检查点即时创建一个所需模型。它将从库中选择正确的模型类,以即时创建适当的架构并加载所需模型的权重。
正如我们所见,当给定一个鸟类检查点时,我们最终得到一个TF B模型,GPT2也是如此。在后台,这个API可以接受E中的检查点名称,在这种情况下,它将下载并缓存配置文件以及模型权重文件。你还可以指定一个包含有效配置文件的本地文件夹的路径。
为了即时创建预训练模型,TF Automod API将首先打开配置文件以查看应该使用的配置类。配置类取决于模型的类型,例如,GPT2或其他。一旦测试出适当的配置类,它就可以即时创建该配置,这是了解如何创建模型的蓝图。
它还使用这个配置类来找到适当的模型类,该类与加载的配置结合以加载模型。该模型尚未完成或处于模型之间,因为它刚刚用随机权重初始化。最后一步是从模型文件中加载权重。
要轻松加载来自任何检查点或包含配置文件的文件夹的模型配置,我们可以使用autoconft类。像T for tomod类一样,它从库中选择正确的配置类。我们也可以使用与检查点对应的特定类。
但我们每次想尝试不同的模型架构时都需要更改代码。正如我们之前所说,模型的配置是一个蓝图,但包含创建模型架构所需的所有信息。例如,与基于鸟类的案例检查点相关的鸟类模型有12层,隐藏层大小为768,词汇表大小为28,996。一旦我们有了配置。
我们可以创建一个具有与检查点相同架构的模型,该模型是随机初始化的。然后我们可以从头开始训练,制作任意数量的模型。我们还可以通过使用关键字参数来更改配置的任何部分。第二段代码实例化了一个具有10层而不是12层的随机初始化模型。
一旦训练完成,微调是非常简单的,你只需使用安全的假装方法。在这里,模型将保存在当前工作目录中名为My beltt model的文件夹中。这样的模型可以通过形式之间的方法重新加载。要了解如何将此模型推送到头部,请查看推送视频。
是的。
官方教程来啦!5位Hugging Face工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P15:L2.8- 基于子词的分词器 - ShowMeAI - BV1Jm4y1X7UL
让我们来看看基于子词的分词。理解为什么基于子词的分词有趣,需要理解基于单词和基于字符的分词的缺陷。如果你还没有看过关于基于单词和基于字符的分词的第一部视频。
我们建议您在查看此视频之前查看它们。基于子词的分词处于基于字符和基于单词的分词算法之间。其想法是在非常大的词汇量、较大量的超出词汇的标记以及在非常相似的单词之间丧失意义之间找到中间地带。
对于基于单词的标记和非常长的序列,以及基于字符的分词器的单个标记,这些算法依赖于以下原则。常用词不应被拆分成较小的子词,而稀有词应被分解成有意义的子词。一个例子是单词dog。我们希望我们的分词器为单词dog保留一个唯一的ID。
而不是将其拆分成字符DONG。然而,当遇到单词dogs时,我们希望我们的分词器理解,根本上,这仍然是单词dog,加上一个S,这稍微改变了意义,同时保持了原始想法。另一个例子是像tokenization这样复杂的词,可以拆分成有意义的子词。😊。
单词的根是token,iization完成根部,赋予其稍微不同的含义。😊,将单词拆分成两个token是合理的,将标记为单词开头的词根和标记为单词完成的附加信息的ization。
反过来,模型现在能够在不同情况下理解token。它将理解单词token、tokens、tokenizing和tokenizations具有相似的含义并且是关联的。它还将理解tokenization、modernization和immunization,这些都有相同的后缀,可能在相同的句法情况下使用。
基于子词的分词器通常有办法识别哪些标记是单词的开始,哪些标记是完成单词的。这里的token是单词的开始,hash hashization是单词的完成。这里的hash hash前缀表示iization是一个单词的一部分,而不是它的开头。😊,hash hash来自于基于单词peace算法的鸟类分词器。
其他标记使用其他前缀,可以放置在这里表示部分单词或单词的开始。有很多不同的算法可以用于基于子词的分词,而如今大多数模型在英语中取得了最先进的结果,都使用某种基于子词的分词算法。这些方法通过在不同单词之间共享信息,帮助减少词汇量。
具备将前缀和后缀理解为这样的能力。通过识别相似的标记,它们在非常相似的词汇中保持意义,构造出新词。
是的。
官方教程来啦!5位Hugging Face工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P23:L3.6- 使用Accelerate增强您的PyTorch训练流程 - ShowMeAI - BV1Jm4y1X7UL
用Hugging Face Accelerate为你的训练循环提速。
你可以在多个环境中运行你的训练。可以是在CPU、GPU、或多个GPU上。分布在一台机器上有多个设备,或者甚至是多台机器,通常称为节点,配备多个设备。此外,还有新技巧可以让你的训练更快或更高效,例如混合精度和动态速度。每种设置或训练技巧都要求你以某种方式修改训练循环的代码,并学习新的API。
所有的设置都通过训练API找到,并且有所有第三方库可以提供帮助。问题在于我们可能会觉得这是一个黑箱,并且可能不容易实施你需要的训练循环的调整。
加速器专门设计让你对训练循环保持完全控制,并尽可能不干扰。只需在你的训练循环中添加四行代码,你就能展示训练循环视频中的示例。加速器将在第一张幻灯片上安装所有设置和训练技巧。
只需学习一个API,而不是10个不同的。更具体地说,你需要导入一个瞬时表加速器对象,它会处理特定设置所需的所有代码。然后,你需要将其发送到模型、优化器,以及你在准备过程中使用的内容。这是需要记住的主要方法。在这些设备上加速。
所以你不需要将批次放在你正在使用的特定设备上。最后,你需要将最后一行替换为加速器的反向损失。就这样。加速器还涉及分布式评估。你仍然可以使用经典的评估循环,例如我们在训练组视频中看到的那样,在这种情况下,所有过程都将执行完整评估。要使用分布式评估。
你只需适应一个评估循环,如此。这就是加速器或每次训练的方式。然后,你可以省略将批次放置在正确设备上的那一行。在将预测和标签传递给你的指标之前。
使用加速器从每个过程获取预测和标签。
分布式训练脚本必须在不同进程上多次启动。例如,每个你使用的 GPU 启动一次。如果你熟悉 PyTorch 工具,可以用它们来实现。accelerate
还提供了一个简单的 API 来配置你的设置并启动训练脚本。在终端中,运行 accelerate config
,并完成一个小问卷以生成包含所有相关信息的配置文件。
然后你可以运行 accelerate launch
,后接过去的或你的训练脚本。在笔记本中,你可以使用笔记本启动器功能来启动你的训练。
。
官方教程来啦!5位Hugging Face工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P24:L4.1- Hugging Face数据集概述(Tensorflow) - ShowMeAI - BV1Jm4y1X7UL
E phase数据集库的快速概述。你可以F数据集库,这是一个提供API以快速下载许多公共数据集并预处理它们的库。在这个视频中,我们将探讨如何做到这一点。所以部分是通过load data set函数轻松完成的。你可以直接从其网站下载并缓存数据集,如果我拥有数据集集的中心。
这里我们从crew benchmarkch获取我们的PC数据集。它是一个包含成对句子的集合,任务是确定配对。Lu数据集函数返回的对象是数据集字典,这是一种包含每个数据集切分的字典。
我们可以通过索引名称访问每个切分。这个切分是数据集类的一个实例,包含句子1、句子2、级别和IDX,以及规则。你可以通过索引访问给定元素。Uing phase数据库的惊人之处在于,一切都是安全地使用上层Sharo保存到磁盘的。
这意味着即使你的数据集庞大,你也不会耗尽内存。当这些语句在内存中请求时,访问数据集的一个切片就像访问一个元素一样简单。结果是一个字典,包含每个案例的值列表。这里是标签列表、第一句的列表和第二句的列表。
数据集的features属性为我们提供了关于其列的更多信息。特别地,我们可以看到它在这里提供了整数和标签名称之间的对应关系。0代表净等价,1代表等价。为了处理数据集的所有元素,我们需要对其进行分词。看看视频,预处理句子对以进行复习。
但你只需要将这两句发送给文档分词器,并附加一些关键字参数。这里我们指定最大长度为128,并将短于此长度的输入进行填充,长于该长度的输入则被截断。我们将所有这些放入分词函数中,可以直接通过map方法应用于数据集中的所有sps。只要函数返回字典对象。
map方法会根据需要添加新列或更新现有列。为了加快预处理,并利用分词器由rust支持的事实,感谢tick phase分词器的库,我们可以使用batch为true参数在自动化函数中同时处理多个元素。因为分词器可以列出第一句或第二句。
分词函数不需要从这里改变。你还可以使用多处理和map方法,查看下面的文档链接。完成后,我们几乎准备好进行训练。我们只需使用remove columns方法移除不再需要的列。
我们将label2命名为labels,因为Tom库中的模型期望如此。并设置所需后端的输出格式,torch,pencilsor F影响。如果需要,我们还可以使用select方法生成数据集的短样本。
。
官方教程来啦!5位Hugging Face工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P27:L4.4- 使用TensorFlow进行微调(迁移学习) - ShowMeAI - BV1Jm4y1X7UL
在这个视频中,我们将看到如何加载和微调一个预训练模型。过程非常快。如果你看过我们的管道视频,我会在下面链接,过程非常相似。😊不过这次,我们将使用迁移学习并进行一些训练,而不仅仅是加载模型并直接使用,就像我们在管道视频中所做的那样。
如果你想了解更多关于迁移学习的内容,而你对此了解不多,你可以去看一下“什么是迁移学习”的视频。我会在下面链接。😊但现在,让我们看看这段代码。首先,我们选择要使用的模型。在这种情况下,我们将使用著名的塑料Bt。但这行代码到底是什么意思呢?
这个TF自动模型用于序列分类,这意味着什么呢?好吧,TF代表Tensorflow,其余部分是指如果语言模型还没有序列分类头,就将其添加上去。所以我们要做的是加载Bt,这是一种通用的语言模型,没有序列分类头。我们将使用from pre traineded方法,这个方法确保我们所有的权重都来自预训练模型。
除了我们将要添加的新序列分类头外,它们并不是随机初始化的。😊所以这个方法需要知道两件事。首先,它需要知道你想加载的模型的名称。其次,它需要知道你的问题有多少个类别。如果你想跟随我们数据集视频中的数据,我会在下面链接。
那么你将有两个类别,正类和负类,因此nu标签等于2。但是这个编译的东西呢?如果你熟悉Caris,你可能已经看过这个。如果没有,这是Caris中的核心方法之一,你总是需要在训练模型之前编译它。编译需要知道两件事。
首先,损失函数,基本上是我们想要优化的内容。在这里,我们导入稀疏分类交叉熵损失函数。听起来复杂,如果你以前从未遇到过。但这是任何进行分类任务的神经网络的标准损失函数。它基本上鼓励网络输出大的值。
这样对于正确类别的概率会很大,而对于错误类别的概率则很小。注意,你可以像我们在这里对optr所做的那样,以字符串的形式指定损失函数。但这里有一个常见的陷阱。默认情况下,损失函数假设输出是来自softmax层的概率。
但我们模型实际输出的是softm之前的值。这些通常被称为逻辑值或逻辑量。你在关于管道的视频中见过这些。😊如果你搞错了这一点,你的模型将无法训练。而且搞清楚为什么会非常麻烦。实际上,我甚至敢说,如果你从这个视频中什么都不记得。
请记住,始终检查你的模型是否输出逻辑值或概率,并确保你的损失设置与之匹配。这将为你在职业生涯中节省很多调试的麻烦。否则这些问题将很难追踪且非常烦人。但撇开这一点,编译所需知道的第二件事是你想要的optr。在我们的案例中,我们将使用atom。
这是现在深度学习的标准优化器之一。你可能想要改变的唯一一点是学习率。为此,我们需要导入实际的optr,而不是仅仅通过字符串调用它。就像我们之前处理损失时做的那样。不过我们可以在另一个视频中讨论这个问题。
现在我会在下面链接这个,先试着训练模型。😊那么,如何训练模型呢?
好吧,如果你以前用过Kais,这一切对你来说都会很熟悉。但如果没有,让我们看看我们在做什么。Fit几乎是Kais模型的核心方法。它告诉模型将输入分成批次,然后进行训练。所以第一个输入是令牌化文本。你几乎总是会从一个令牌器中获得这个。
如果你想了解更多关于这个过程的信息,这些输入到底是什么样子,请查看我们关于令牌的视频。再次强调,下面会有相关链接。所以这些是我们的输入。但第二个参数是我们的标签,这真的很简单。这只是一个一维的nuy或tensorflow整数数组。
它们对应于样本的类别。就这样。😊所以如果你在跟随我们数据集视频中的数据,只有两个类别。因此这将只是一个零和一的向量,但你可以根据自己的问题拥有更多的类别。一旦我们有了输入和标签,我们对验证数据做同样的事情。
我们以元组的形式传递验证输入和验证标签。如果我们想指定训练的批量大小等细节,就可以这样做。然后你只需将整个内容传递给model.dot fit,放手去做。如果一切顺利,你应该会看到一个小的训练进度条,随着损失的降低而下降。
当这个运行时,你知道,你可以坐下来,给你的老板打电话,告诉他们你现在是一名高级NLP机器学习工程师,并且下个季度你会想要薪资审查。所以这是,开个玩笑,但这真的就是将一个大规模预训练语言模型的力量应用于你的NLP问题所需的一切。😊但我们能做到更好吗?像,是否有任何我们可以做的改变?当然有。
还有一些更高级的careis功能,比如调度的学习率。我们可以得到更低的损失,因此模型会更准确。此外,当拟合完成后,我们该如何处理训练好的模型。这些都是我将在视频中探讨的主题,还有更多内容。
我将把后续视频链接在下面。😊。
。
官方教程来啦!5位Hugging Face工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P32:L5.3- 在Model Hub管理模型repo - ShowMeAI - BV1Jm4y1X7UL
在本视频中,我们将了解如何在Hoging F模型中心管理模型库。要处理库,你首先需要一个Hugging Face账户。创建新账户的链接在描述中提供。一旦你登录,你可以通过点击新模型选项来创建一个新的库。
你应该看到一个类似于以下的模型。😊 在所有者输入框中,你可以输入自己的命名空间或你组织的任何命名空间。😊 模型名称是将用于识别你模型的标识符。最后的选择是在公共和私有之间。公共模型对任何人可访问。
这是推荐的免费选项,因为这使你的模型更容易访问和分享。你命名空间的所有者是唯一能够更新和更改你模型的人。一个更高级的选项是私有选项。在这种情况下,只有你命名空间的所有者才能查看你的模型。
其他用户不会知道它的存在,也无法使用它。让我们创建一个虚拟模型来玩玩。一旦你的模型创建完成,就需要管理该模型。
你可以看到三个标签。你面对的是第一个,模型卡页面。
这是你用来向世界展示你的模型的页面。稍后我们将看到如何完成它。第二个是文件和版本。你的模型本身是一个Git库。如果你不知道什么是gett库,可以把它看作一个可以进行版本管理的文件夹。
如果你以前从未使用过Gid,我们建议你查看一下本视频描述中提供的介绍。gett库让你可以看到这个文件夹中随时间变化的内容,因此称为版本。稍后我们将看到如何添加文件和版本。最后一个标签是设置标签,允许你管理模型的可见性和可用性。
😊 首先让我们开始向库中添加文件。通过网页界面可以使用“添加文件”按钮来添加文件。添加的文件可以是任何类型,Python、文本,随你选择。在你添加文件及其内容的同时,你还应该为你的更改或提交命名。通常。
使用命令行添加文件更简单。我们将向大家展示如何使用Git来做到这一点。😊
除了Git,我们还使用Git LFS,代表Git大型文件存储,以管理大型模型文件。
首先,我确保我的系统上正确安装了Git和Git LFS。视频描述中提供了安装Git和GiLFS的链接。然后我们可以通过克隆存储库进行工作。我们有一个包含单个文件的存储库。😊。
我们刚刚通过网页界面添加到存储库的文件。
我们可以编辑它以查看该文件的内容并进行更新。
结果发现我有一个可以用于情感分析的模型。我会简单地将内容复制到这个文件夹中。这包括模型权重、配置文件和分词器到存储库。我可以用Git add命令跟踪这些文件。然后,我开始进行更改。
并将此提交命名为添加模型权重和配置。😊,最后。我可以将新提交推送到hugging phase。co远程。
返回到网页界面的文件和版本选项卡时。我们现在可以看到新增的提交和更新的文件。我们在这里看到两种将文件添加到存储库的方法。第三种方法在关于pushush到Hub API的视频中探讨。
该视频的链接在描述中。不幸的是,我们模型的主页仍然非常空。让我们添加一个readme markdown文件来稍微完善一下。这个readme被称为模型卡,它与模型和分词器文件在模型存储库中的重要性不相上下。它是模型的核心定义,确保了社区成员的可重用性和结果的可重复性。
😊,并提供一个平台,让其他成员可以构建自己的工件。这里我们仅为简化起见添加一个标题和简短描述,但我们鼓励您添加与模型训练相关的信息、预期用途和限制,以及已识别和潜在的偏见。
评估结果和代码示例,说明您的模型应如何使用。😊。为模型中心贡献模型的出色工作。现在可以通过简单指定您的模型标识符在下游库中使用该模型。😊。
是的。
官方教程来啦!5位Hugging Face工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P37:L6.5- Omar的在线直播讲解 - ShowMeAI - BV1Jm4y1X7UL
好的,我想我们可以开始了。所以一如既往,欢迎大家。如果你有任何问题,可以在聊天中询问,Le会在这里帮助我。这是课程的第四章,也是最后一章。这与之前的三章有所不同,这一章会让你更深入地了解如何使用平台以及如何利用Hugging Face的所有功能。
这是今天的快速议程,首先我们将稍微了解一下平台。然后展示如何使用现有的预训练模型,接着如何将模型推送到hub,包括使用push to Hub方法和Hugging Face客户端命令行界面。然后我们会谈谈模型卡,最后我们会展示一些不是课程一部分的额外内容。
关于女孩的问题。所以是的,Co hub你在前面的章节中已经稍微使用过了。它是一个中央平台,使任何人都能发现、使用和贡献新的最先进的模型和数据集。它托管各种各样的模型,目前有超过10,000个公开可用的模型,我们现在可以检查一下它的数量,目前有11,000个可供任何人使用的公开模型。
所以Hub支持模型和数据集,在这一章我们完全专注于hub的模型方面。因此,hub中的模型不仅限于Hugging Face的transformers,甚至不限于自然语言处理。还有来自Flare和ALP的NLP模型,语音模型。
这里有asteroid和P note,还有一些视觉模型,这只是其中的几个。如果你想查看hub中支持的所有模型,这就是Hugging Face。你可以访问资源。在这里,你可以去模型hub。在左侧,你可以查看库。在这里我们有支持库的完整列表,以及它们根据不同特性支持的程度,所以显示了phase transformers。
但也有适配器变换器,所有NLP,asteroid,SPNe,Flare,by note。中心变换器,Spacey,Tensorflow TTS,和Team。所以这些模型作为Git仓库存在,因此如果你之前使用过GitHub,这对你来说将非常简单。在hub上使用模型意味着将其开放给所有社区成员。
这使得模型对任何想要轻松使用它的人都可用。反过来,这将消除或需要自己运行模型的需求,并简化模型的共享和使用。此外,hub还有一个叫做推理API的功能。因此,当你将模型上传到Hub时,将自动部署一个托管的推理API,允许你或社区中的任何人直接在网站上尝试该模型,视频会展示更多的内容,但你可以先了解我所说的内容。
我想我们在第一章已经做了一点这个。但是如果你打开一个存储库,在这里你可以在朋友API中托管,所以你可以尝试这个查询。如果你点击计算,这是一个填充掩码模型。它会预测应该放入那里哪些单词。因此,生活的目标就是生活。好吧,这并不太好,但你明白我的意思。
而且它并不限于字段掩码,实际上还有很多其他任务。好的,我会向你展示这一点。本章的第一个视频,但如果你有任何问题,请随时在聊天中提问。
在这个视频中,我们将讨论Hugging Face模型的导航。这是Hugging Face的官方网站。要访问模型中心,请点击右上角的模型选项卡。你应该面对这个网页界面,可以分为几个部分。在左侧。
你会找到可以用来定制模型搜索的类别。第一个类别是任务。平台上的模型可以用于各种任务。这些包括自然语言处理任务,如问答或文本分类,但不仅限于此。其他领域的任务也可用。
比如说计算机视觉中的图像分类或语音中的自动语音识别。第二个类别是库。平台上的模型通常共享三种基础架构之一:PyTorch、TensorFlow或JAX。然而,还有其他基础架构,如Rust或Onyx。最后,这个选项卡还可以用来指定模型来自哪个高层框架。
这包括变换器,但不局限于此。模型中心用于托管许多不同框架的模型,我们也在积极寻求托管其他框架的模型。第三个类别是数据集选项卡。从这个选项卡选择一个数据集意味着过滤出那些在特定数据集上训练的模型。
第四个类别是语言选项卡。从这个选项卡选择一种语言意味着过滤出能够处理所选语言的模型。最后,最后一个类别允许选择与模型共享的许可证。在右侧,你会找到可用的模型。模型默认按下载排序。点击一个模型时,你应该看到它的模型卡。
模型卡包含有关模型的信息,包括其描述、预期用途、限制和偏见。它还可以展示如何使用该模型的代码片段,以及任何相关信息、训练、过程、数据处理、评估结果或版权。这些信息对模型的使用至关重要。
模型卡制作得越精细,其他用户就越容易利用你的模型及其应用。在模型卡的右侧是推理 API。这个推理 API 可以直接与模型进行交互。请随意修改文本并点击 Comp,查看模型对你输入的反应。
在屏幕顶部是模型标签。这些标签包括模型任务以及与我们刚才看到的类别相关的其他标签。文件和版本标签显示该模型的仓库架构。在这里我们可以看到定义该模型的所有文件。你将看到一个 git 仓库的所有常见特征,包括可用的分支和提交历史。
还有提交的 diff。在模型卡的顶部,有三个不同的按钮。
第一个示例展示了如何以编程方式使用推理 API。第二个示例展示了如何在 SageMaker 中训练该模型。最后一个示例展示了如何在适当的库中加载该模型。对于 Birt,这里是 transformers。
好吧,我觉得这非常简单。也许让我稍微扩展一下某些要点,让你们有所了解。但是如果你现在点击部署加速推理,你将获得这个代码片段,以便你可以在 Python 中进行请求,但这并不仅限于 Python。这就像一个普通的 API 调用,因此你可以使用 JavaScript 或任何你使用的语言。
然后在右侧,如果你点击使用 transformers,你会得到一个可以使用的代码片段。但正如我们之前讨论的,这并不限于 transformers。所以,如果你转到母版页面,在左侧,你可以点击这里的加号,这里可以看到所有支持的库。例如。
如果我们转到句子 transformers,将过滤出所有句子 transformers。这里的代码片段将发生变化,因此例如,这里的代码片段特别针对这个库,这样就与他们的库实现了非常好的集成,如果你在这里点击计算,这将是很好的。
用于句子相似性,因此你会得到一个源句子,然后是目标句子。你将获得源句子与其他句子之间的距离。这样可以了解它们的相似程度。因此,对于这个模型,最接近的表达是“一个快乐的人”与“一个非常快乐的人”,这样是有意义的。这里有一个问题,我们能否使用基于关键字的搜索来寻找特定任务的模型?
如果你对某个特定任务感兴趣,可以去模型,然后点击文本生成,例如,然后你可以进行额外的搜索,例如GT。你还可以有额外的过滤器,比如库数据集、语言。但我们现在正在改进搜索功能,请继续关注,未来会有更好的模型发现功能。
是的,好的问题。所以这是如何使用和浏览hub。让我们快速讨论一些你可能已经熟悉的内容,因为你在第一和第二章中做过。假设我们对一个可以执行填充掩码的法语模型感兴趣。好的,我来去掉这个,所以我们说填充掩码。你选择了法语。
我们可以使用这个comm face,通常你应该阅读描述。模型卡以理解这个模型的用途以及是否存在任何偏见或限制。我们将在几分钟后详细讨论这个。好的,所以有三种不同的使用模型的方法。
所以第一个就像我们在第一章做的那样。我们使用管道。这是一个非常高层次的功能,从transformers导入pipeline,只需指定。我们要解决的任务是什么,也就是填充掩码?我们指定了名称。gun member bird base。正如你所看到的,我们得到了一个预测。
你也可以使用特定的模型架构来加载模型,这与第二章中的做法类似。这是一个commem bird模型,它有一个commem bird架构。你可以导入commemered组织者和用于掩码语言模型的commem bird。如果你去GitHub Transformers源代码中的Transformers模型,你会看到。
你可以看到在Transformers库中实现的所有架构,确实有很多。因此,通常建议使用Auto类来组织和自动模型,因为这些是架构无关的。这样你就不需要担心具体的架构。
让我简要回顾一下管道,这我认为是重要的。你需要确保所使用的模型和检查点是适用于这个任务的。比如说你想使用文本分类。模型并不是为此训练的,所以这当然没有意义。
它会给你输出,但会抱怨。它会说你可能需要在下游任务上训练模型,就像你在第三章中做的那样。而且,这里的预测几乎没有意义。好的,所以这没什么新鲜的。但我认为更有趣的是下一部分。
这就是如何共享预训练模型。因此,这大概是课程第一部分的最后两个视频。第一个视频将向你展示如何管理一个仓库以及如何上传文件。通过命令行界面,第二个视频将展示如何使用推送到中心的方法。这里有三种不同的操作方式,一种是网页界面,一种是使用transformers或命令行接口的coding F hub,第三种选项是推送到中心的API。
所以让我们跳到视频中,记得在聊天中提出任何问题!
在这个视频中,我们将了解如何在Hugging Face模型中心管理模型仓库。为了处理仓库,你首先需要有一个Hugging Face账户。创建新账户的链接在描述中可用。一旦你登录,你可以通过点击新模型选项来创建一个新的仓库。
你应该面对一个类似于下面的模型。在所有者输入框中,你可以放入你自己的命名空间或任何组织的命名空间。模型名称是将用于标识你模型的标识符,最终选择是公共或私有。公共模型对任何人可访问。
这是推荐的免费选项,因为这使得你的模型易于访问和共享。只有你的命名空间的所有者可以更新和更改你的模型。更高级的选项是私有选项。在这种情况下,只有命名空间的所有者才能查看你的模型。
其他用户将不知道它的存在,也无法使用它。让我们创建一个虚拟模型来玩。模型创建后,接下来就是管理这个模型。有三个选项卡可供选择。你现在看到的是第一个,即模型卡页面。这是你用来向世界展示你的模型的页面。
我们稍后会看到如何完成这个。第二个是文件和版本。你的模型本身就是一个git仓库。如果你不知道什么是git仓库,可以把它想象成一个包含可以版本控制的文件的文件夹。如果你从未使用过Git,我们建议查看这个视频描述中提供的介绍。
git仓库允许你查看这个文件夹随时间发生的变化,因此称为版本。我们稍后会看到如何添加文件和版本。最后一个选项卡是设置选项卡,它允许你管理模型的可见性和可用性。😊,让我们先开始将文件添加到仓库中。
文件可以通过网页界面通过添加文件按钮添加。添加的文件可以是任何类型的,Python,J文本,随便你。除了你的文件及其内容之外,你还应该命名你的更改或评论。一般来说,使用命令行添加文件更简单。我们将展示如何使用Git来实现这一点。
除了 Git,我们还使用 Git L F S,这代表 Git 大文件存储,以便管理大型模型文件。首先,我确保在我的系统上正确安装了 Git 和 Git LFS。安装 Git 和 GiLFS 的链接在视频描述中提供。然后,我们可以通过在本地克隆库开始工作。我们有一个包含单个文件的库。
我们刚刚通过网络界面添加到库的文件。我们可以编辑它以查看该文件的内容并更新它。原来我有一个可以用于情感分析的模型。我会把内容复制到这个文件夹中,包括模型权重。
配置文件和分词器已添加到库中。我可以通过 gett add
命令跟踪这些文件。然后,我提交更改,并为此提交命名为“添加模型权重和配置”。😊,最后。我可以将新的提交推送到 hugging phase dot co 远程库。😊。
当返回到网络界面的文件和版本选项卡时,我们现在可以看到新添加的提交及更新的文件。我们在这里有两种添加文件到库的方法,第三种方法在有关推送到 Hub API 的视频中探讨。
此视频的链接在描述中。不幸的是,我们模型的主页仍然非常空荡。让我们添加一个 README Markdown 文件,让它看起来更完整。这个 README 被称为模型卡,它的重要性不亚于模型和分词器文件,是模型库的核心定义,确保其他社区成员能够重用并复制结果。
提供一个平台,让其他成员可以构建他们自己的工件。为了简化,我们在这里仅添加一个标题和简短描述,但我们鼓励您添加与模型训练相关的信息,包括其预期用途、局限性,以及识别出的潜在偏见。
评估结果和代码示例,说明您的模型应该如何使用。😊。出色的工作,向模型中心贡献了一个模型。现在,只需指定您的模型标识符,该模型即可在下游库中使用。😊。
好的,请随时在聊天中提问,我会尽力回答。如果我们与组织合作时,才能发挥作用。我想您是指身份验证令牌。因此,通常在您使用 Ho 界面通过 Ho phase 命令行接口登录计算机时。
每个用户都有一个令牌,保存在本地,然后在您推送文件时保存到服务器。后端确保您对特定文件的访问权限,因此如果您是某个组织的成员,并且您推送模型或创建报告。
你总是需要的。你的令牌将是请求的一部分,但这是针对任何请求的,因为我们需要知道是谁在发起请求。如果这不是很清楚的解释,或者如果你指的是其他令牌而不是身份验证令牌,请告诉我。好的,那么让我给你展示最后一个视频,然后如果你觉得可以,我们就开始编写代码。
同时,欢迎在聊天中随时提问。
让我们看看每个API的推送。在录制这个视频之前,我提到过坏模型和给团队M PC。我们这里不讨论查找引擎的代码,因为你可以在任何转换器教程中找到它,或查看下面的视频链接。
我们这里感兴趣的是训练完成后发生了什么,以及我们得到了令我们满意的指标。这个视频要求你在Eingfeaz.go网站上注册一个账户,并且要将你的音频上传到该网站存储。这可以通过在终端输入Eringface CLI login,或在Coab笔记本中使用感叹号这样做。
如果你使用的是普通的Jupiter笔记本,这个命令将无法工作。因此,如果你使用的是Jupiter并且没有终端访问权限,你需要从Ugingfeest.go网站复制你的访问令牌到训练参数中。稍后我会告诉你确切的位置。完成后,
push API将会向Eingface推送我们的模型、其配置和关联的分词器。要在训练者内部使用它,你必须确保在训练参数中将push设置为true。我们可以为库指定一个模型ID。如果不做任何说明,它将默认为输出的名称。
只要我们是该组织的成员,就可以推送到该组织。这是你的Eingfeaz账户应该用来操作的地方,如果你需要的话。不管怎样,一旦完成,我们可以在训练结束后调用训练者的push函数。在未来的开发中,我们将增加在每个epoch结束或每隔一定步数自动推送到应用程序的功能。
所以请保持关注。该命令返回一个特定提交的URL。如果我们在浏览器中复制它,就可以进行检查。需要注意的是,如果你不使用训练者API,可以直接通过使用push2have方法将模型和分词器推送到该位置。通过在我的浏览器中输入提交信息,我可以访问我预期的名为Fine Tru Belt M PCC的库。
并查看所有文件是否已添加。一个模型卡,模型的配置。模型权重,绑定运行的吨数,以及作为分词器所需的所有文件。训练者起草了一个模型类,包含了评估集上的最终结果,训练输出参数和中间训练结果。
还有其他框架。如果我点击编辑模型卡以查看原始内容。我可以看到训练者还生成了一个元数据表,Ugingfaceco网站将使用该表来正确应用字段到我的模型。我还可以通过点击此处的训练指标直接访问模型中心的tonawboard运行。现在模型在欧洲,我们可以通过from between方法从任何地方使用它。
我们只需使用E中的标识符,就可以看到模型配置和权重被自动下载。我们可以像使用任何变换模型一样使用这个模型,例如,通过在管道中读取它。由于MRPC数据集是一组平行句子的集合,其任务是确定两个句子是否相互对应。
我们使用它,并通过步骤将两个句子分开。看到它预测标签为零有点令人失望。这是因为我在创建模型配置时没有指定任何标签。用pushure API修复这个问题非常简单。首先,我们可以通过将标签设置为a并将8设置为带有适当值的标签来本地修复配置。
然后我们可以通过推送到方法把修复的配置推送到我们的reportpo。再次请返回提交的URL,我们可以检查并查看配置的具体内容。请注意,命令执行得非常快,因为我使用的是之前的同一个本地文件夹,而我的报告已经克隆过了。一旦完成,我们就创建一个新的管道。
我们可以看到新的配置自动下载,这得益于构建人员系统,我们得到了新的标签。我们还可以直接在模型卡上玩模型。通过更改我使用的文本并点击Comp。我只需稍等一下,模型就会加载到推断API并显示结果。当模型加载后,我们可以再次检查,确认在Weget上得到的结果与之前相同。
今天试着把你的模型推送到VPA上。好的,是的。回到I am Hols关于认证令牌的问题,现在我看到这个例子,我觉得我更明白你的问题来自哪里了,所以通常当你进行Hoging阶段的清晰日志记录时,你的认证令牌会被存储在缓存中,然后你就不需要再做了。
但例如,如果你在goL工作,或者,是的。我不知道在一个可能不想登录的环境中。相反,你可以指定一个特定的认证令牌。这就是out token参数的用例。好的,那我们开始编码吧。
因此,如果你在Git中做配置,如果是你的正常git配置,我之前已经登录过。哦。如果这里的表。ho。系音。抱歉,是谁。是的,那个去。所以我在开始会话之前已经登录,所以我的用户名是Haarte,我给你展示了一些例子,因此推送到API的好处在于,变压器中的一切都具有这种方法。
所以模型tokenrs,是的,你说的就是这样。如果你先做前三行。它将推送模型文件和tokenizer文件。非常好的是,如果你使用Tra API。好的,现在我正在获取神经元,让我快速一下。嗯。好的,这是新的。好的,让我再试一次。诶。与此同时。
让我给你展示一个通过训练API上传的示例,如果你跟随Piytorch教程的第3章,你会非常熟悉,所以只需指定push to H,你将获得一堆非常好的东西。因此,你会得到一个描述,你会得到loss accuracy或其他指标。你会得到占位符部分,可以稍后完成。
你将获得在训练过程中使用的所有训练超参数。你将获得一张很不错的表格,显示每个epoch的训练结果。你还会得到框架版本。这对于可重复性非常有用。除此之外,还有一个非常好的功能,就是托管的Tensor bird在中心。
所以如果你在仓库中有tensor board的痕迹,并且不限于hogen phase transformers。就像可以是任何tensor board的痕迹,你将自动获得一个tensor board供你使用,在这里你将能够查看矩阵。
几。E,看起来像。
我仍然有问题,不知为什么。抱歉,所以让我还是在终端中操作。
这将是一个。え。一。那么,让我们先。导入。我们关心的内容。
所以我们只是初始化一个mod learned organizer。
正如我们之前所做的一样,有些nothingia。
好的,可能需要一点时间。然后他们会尝试做模型,推送给她。然后命名所有的。所以让我来做这个。是的,花几秒钟。这条命令正在为你上传很多模型。
我实际上不确定你为什么去服务器,因为我在大约10分钟前尝试过。
我没有决策,找不到仓库。嗯。好的,这有点麻烦。我觉得我的电脑在同时处理直播时有点吃力。是的,期间。如果你还想指定一个组织,你可以这样做,就像我们之前讨论的那样。如果你想的话,你也可以指定一个Token。
好的,另一个选项是使用Hook阶段。我不知道。Doganer。推送到她。好的。报告是自动创建的,因为它之前不存在。让我们看看文件是否仍在上传。诶。是的,通常不会这么久。我不确定这是我的电脑还是现在有任何连接问题。
Hping the face。
嗯。
好的,等它运行的同时,让我给你展示第二种方法。就是使用Hook阶段的Clay。
所以如果你只是基本上在拥抱。Reipple grade Doit2。它通常会为你创建一个记录。诶。언디 가?
是的,所以我们问你,是否想创建repohyite doit2?我说是。然后它给了你一个链接,可以在浏览器中查看。
这也告诉你如何克隆它。这类似于Listen制作的第一段视频。在这里你可以做到。是的,比如正常的事情,例如,你可以创建一个模型卡。这是一个正常的马拉松文件,所以这是一个测试。你可以获取它。你可以执行它。当你提交时。是的,你会得到这里,这就是测试,这就是我在模型卡中写的内容。
你可以查看所有文件。你可以查看仓库的历史。是的。正如你所看到的,有一个提交是在14秒前。我进行了这个更改,所以这非常好,因为如果你只是使用GitHub的工作流。你可以用这个创建分支,例如。
你也可以非常容易地恢复更改,所以这个人来说非常好。え。是的,好的。那么回到之前的分词器。在我看到推送到Hub的地方。如果你去文件和版本,你可以看到文件现在已经上传。诶。一。所以让我快速检查一下历史。是的,我觉得那里有一些连接错误。
正如你所看到的,实际上模型和分词器都已经上传,所以这很好。诶。那么,诶。主机阶段基础设施通常对变换器所做的是分析配置。配置指定了一些像架构这样的东西。是的,这种东西,基于此,它已经告诉你这是一个电影面具模型。
这是一个kberg模型,它是变换器,使用byytor。这一切都基于文件和配置,你可以在这里看到。托管推理API。你需要等待,尤其是第一次,你需要等待模型在后台加载。如果你想部署,可以在加速推理API中使用这个,尽可能多地进行。
对。玩一个模型,你可以很容易地将其整合到自己的产品中。好吧。是的。这是对她的推动。好的,我们回到命令行界面。就我认为。糯面都咩啲。是的。现在我们没有任何东西,对吧?我们还没有创建模型卡。
所以,让我知道。
好吧,让我们制作一个非常慢的电脑。那么我们现在可以做的是。
像正常的 Github 工作负载,你可以执行 get clone。然后是名称。所以现在,例如。我已经有。这个 repo 只是下载了 Briy,它是唯一的文件。 gate 属性也在那里,但它是一个隐藏文件。所以。你不会看到它,除非你指定隐藏文件。正如 Leandra 在视频中提到的。
除了 Git,我们还使用 Git LFS,也就是 Git 大文件存储。这对机器学习中常见的非常大的文件非常有用。所以这是针对大于 10 兆字节的文件。
通常我们做的是你可以指定想要使用的扩展名。你想要和 elephantphis 一起使用。所以是的,所有这些。
所以通常你需要做的是执行 Gi F install 以确保它被初始化。让我来。
给你展示一个不错的例子。假设我们想要在本地处理一个模型。也许训练它,然后不是使用推送到她,而是希望将其保存在本地,然后推送。这就是安全预训练方法的用途。所以让我只用正确的名称,就是我。做。
让我现在只是复制基础。这些都叫做片段。
所以这个是什么,让我逐行解释它为什么运行。它将执行相同的操作。我们加载模型,我们加载 tokenizer,然后将模型保存在目录 toittu 中。这就是我们克隆机器人并且我们还保存 tokenizer。
但正如你所看到的,我的电脑在处理 icestream 时遇到了一些困难,所以有点慢。抱歉。给给送包。如果你现在查看 Domit2,你已经可以看到所有文件。所以我们进入仓库。如果你执行 gi status,这是正常的 gi,你会看到,好的。这些文件都是要添加的,它们不是对的你。所以如果你执行 Gi。
这将允许跟踪所有文件。然后你可以执行git status
,你会得到一些信息。还有另一件事,你可以使用git lfs
。这很好,因为现在你可以看到哪些文件将由普通的Git处理,哪些文件将由Git大文件存储处理。这只是额外的信息,不是你需要过于担心的事情。如果你有一个非常大的新扩展名文件,确实需要关注,但只需简单地添加一个新扩展名,例如你可以更改git属性。
无论如何。让我们提交。我的第一次。我不。所以非常简单。然后你只需执行git push
。由于这些是非常大的文件,通常需要一点时间。所以,我会稍微继续一下,展示给你看。
好的,这几乎就是关于Sching预训练模型部分的所有内容。让我快速回顾一下,我们已经看到如何使用网页界面。这就是我们刚才所做的,上传一个模型的方式。
是的。所以如果你看到80多兆字节,这就是为什么即使在相对较快的连接下也会有点慢。
好的,最后一部分有点不同,是关于如何构建模型卡的。我们已经看过几个模型卡,简单回顾一下,模型卡就是这个文件。这非常重要。它解释了模型,确保它可以被社区其他成员复用,并提供了一个平台,让其他成员可以在其上构建他们的成果。
记录训练和评估的过程有助于其他人了解模型的期望。此外,它还将提供关于使用的数据、预处理和后处理的充分信息,以确保了解模型的限制、偏差和不适用的上下文。
模型可以被识别和理解,因此如果你上传一个没有任何内容的模型卡,没人会使用它,因为他们不知道这个模型是做什么的。相反,如果你有一个非常好的模型卡来解释它的功能、训练方式、目的以及限制和偏差,这将对其他人非常有用。此外,正如我们将看到的,你可以添加一些特殊的元数据,使你的模型更具价值。
让社区其他成员能够发现。因此,正如我们所见,这只是一种节奏。如果你对此更感兴趣。模型卡的概念源自谷歌的一个研究方向。该论文名为《模型卡用于模型报告》,作者是Margaret Mitchell等。这篇论文包含了许多非常有用的信息。
因此我们推荐你去看看。有一些我们推荐的部分。模型描述、预期用途和限制、如何使用限制和偏见、训练数据、训练过程和评估结果。这些不是严格要求的,我们不强迫任何特定部分。因此,模型卡片确实有很大的灵活性。
这里有一段解释这些部分的段落。我认为你可以自己阅读,但更有用的是快速浏览一下。快速浏览一个非常好的模型卡片。这是基于BERT的案例。可能到现在为止你对这个报告有些厌倦了。
所以它有几句话来解释模型以及它是如何引入的。嗯,是的。然后它有一个模型描述,解释模型的高级概述。它是如何训练的,目标是什么。模型学习了什么,比如说,模型学习了英语的内部表示,可以用来提取特征。
对于下游任务非常有用。因此它还有一个预期用途和限制的部分。所以是的。它告诉你可以将其用于大规模语言建模或下一个句子预测,但这个模型的意图是针对下游任务进行微调。你还可以在这里获取类似的代码片段。虽然现在使用部分是关于使用transformers的。
你也可以直接点击这里使用transformers,并从这里加载。是的。然后它向你展示如何在PyTorch和TensorFlow中操作。这里实际上有一个错误。这是针对TensorFlow的,它应该只是BERT模型,这里应该是the BERT model。但你明白这个意思了。然后有一个限制和偏见部分,这非常有用。
我认为这非常重要。所以我们就来读一下,即使这个模型使用的训练数据可以被描述为相当中性,这个模型仍然可以进行预算预测,这与我们在第一章结束时所做的管道非常相似,因此人类的工作及预测都是律师。
服务员、侦探、医生。正如你所看到的,女性的职业是护士、服务员、助理。所以你可以看到,这个模型有一些偏见,正如这里提到的,以及我们之前看到的。这种偏见也会影响这个模型的所有精细版本。因此,重要的是如果你选择一个模型,你需要理解这些偏见,因为这些偏见很可能也会转移到你自己的模型中,特别是在下游任务中。
抱歉,当你进行微调时。它还解释了训练数据,训练是如何进行的。包括预处理、预训练、评估结果的表格。最后,是的。如何引用它。模型卡片非常灵活。嗯,是的,让我快速展示一下。元数据。所以在顶部,人们可以添加有用的元数据,例如你可以指定语言是什么。
许可证是什么?在需要模型时使用了哪些数据集?你也可以添加任意数量的标签,这样人们就可以在这里点击“专家”,找到所有带有该标签的模型。如果你想了解更多关于元数据的信息,可以去资源页面。Mugel hot duck。然后你可以在这里搜索。我们有几个关于元数据的部分。
但这个链接特别有一个模型卡的示例以及其结构。你可以查看你拥有的语言、许可证、你想要的文本。所以,比如说,你可以用这个来指定第三方库或特定任务、数据集、指标。此外,你还可以添加特定的指标,这些指标可以稍后由其他管道处理。
我想差不多就是这些,随时可以问任何问题。如果没有,我就给你展示一下,是的。所以这就是章节的结束。我想给你展示两件非常小的事情。这些都是Hugging Face Hub的一部分。
一。所以第一个部分。让我先展示这两个。
如果你已经安装了transformers,很可能我们已经有了Hugging Face Hub的连接。
这实际上是一个客户端库,提供了许多功能。所以这使得任何人都可以将文件上传到Hub,你可以做很多相当不错的事情。如果你想将其集成到自己的代码中,过程非常简单。
除了有上传和下载内容的包装器之外。
你还可以访问图。信息。来自Hub的信息。所以,比如说,如果你想获取所有针对特定库的模型,让我实际展示一下。这将返回相当多的信息,而不是实际模型。假设在电影掩码中,我认为这样会更清楚。所以这将向后端发起调用。
这将返回关于所有字段掩码的所有信息。正如你所看到的,Hub上有1000A掩码填充模型。所以,让我给你展示一下第一个项目。正如你所见,模型名称是Albert based V1,它给你所有的标签。它还告诉你这个模型报告的任务是什么。
所以社区里有一个人正在上课,他们决定实际创建一个Hugging Face数据集,收录Hub上的所有模型,所以这非常不错。如果你想进行模型探索等,这就像是一个任何人都可以进行的项目。
实际上,你想了解更多关于这个的内容。这个仓库是佢件 face hood。这是与 theHub 相关的开源地方,所以你可以下载和发布客户端库到 hub。你可以获取第三方库的推理 API。你会得到小部件。
所以小部件是在模型右侧的东西,在模型卡中,你可以直接在网页上尝试模型。
更多的东西。这非常不错。这是一个非常新的功能。E,让我先。
诶,Cooking face,清除。
太好了。Nome3。好的,我先抓个 ripa。我需要指定。Re 各一份。Aam Holmes 问是否有选项通过 Hoing F API 认证星星的数量。是的,也许等下周,会有一些相关公告,所以请继续关注。诶,一。所以让我测试一下,现在我创建了一个 ripa。
假设这是一个上下文管理器,也许我们先解释一下代码。Hogan phase hook 有这个类,它是 repository,允许你在特定目录中克隆一个仓库。所以我刚做了 Do3。如果我错了,它会克隆,是的,从我这里。这是一个上下文管理器。
所以你可能已经做过类似的文件处理,所以你可以用 repo。comm 我的第一个文件。你现在做的任何事情都会提交到 hub,所以这就像一个非常好的 proper,可能会让你的生活更轻松。
让我快速检查一下这个是否可行。风鸟,好的。是的。这一初始说明仓库,现在你可以用红色产品提交。
所以,这是我的第一部手机。嗯,好吧。这是一个。我是说。这部分网格对不起,打开文件作为文件 bla blah。这个可以是任何东西,不仅限于文本文件,你可以做任何伟大的事情,所以你可能对此非常熟悉。唯一的新事物是这个 grper 与 repo dot commit 我的第一个文件。
现在如果我们去 theH,去我的。Profi。是的,这里我们有 Domin3。如果我们去火。
我会看到我刚创建的文件。用这个打开文件 lalalah。实际上并不是本地完成的。是提交到仓库。这样处理文件是一个不错的方法。F 在 hub 上写入。
正如你所看到的,值已经在这里。好的,所以这两个是我想给你展示的两个额外内容。这就像最后一章。但我们在接下来的几周里会有一些不同的活动进行。我们在论坛中还有这个分享你的项目部分。
到目前为止,你已经拥有了很多工具来进行微调,例如针对特定任务的文本分类。因此,你现在可以在中心搜索一个有趣的数据集。在中心,你可以去数据部分,搜索有趣的数据。你可以在一个分类项目,文本分类项目上工作。这非常简单。
分享这个非常简单,欢迎随时在这里评论,比如说,“嘿,我用我在课程上学到的内容进行训练,这太棒了。”我们有一个问题,就是therepo.com的联系人管理器的优势是我们不需要每次都进行gi commit,是的,这是一种轻松的编程方式来处理所有联系人管理器的事务。
这主要像是一个方便的包装器。我希望这样能让你理解。好的。还有其他问题吗?谢谢,感谢你的欢迎。好的,感谢每一个能够参加的人,我们下次在公司见。
。
官方教程来啦!5位Hugging Face工程师带你了解Transformers原理细节及NLP任务应用!<官方教程系列> - P6:L1.6- Transformer:解码器 - ShowMeAI - BV1Jm4y1X7UL
在这段视频中,我们将研究解码器架构。一个流行的仅解码器架构示例是GPT2。为了理解解码器的工作原理,我们建议查看有关编码器的视频,它们与解码器非常相似。解码器可以用于大多数与编码器相同的任务。
尽管通常会有一点性能损失。让我们采用与编码器相同的方法,试图理解编码器和ID解码器之间的架构差异。我们将使用三个单词的小示例。我们将它们传递通过解码器。我们为每个单词检索数值表示。这里,例如。
解码器将三个单词“welcome to NYC”转换为三个数字序列。解码器为每个输入单词输出恰好一个数字序列。这种数值表示也可以称为特征向量或特征张量。让我们深入探讨这种表示。它包含每个通过解码器传递的单词的一个向量。
这些向量是所讨论单词的数值表示。😊 向量的维度由模型的架构定义。解码器与编码器的主要区别在于其自注意机制,它使用所谓的掩码自注意。这里,例如,如果我们关注单词“2”。
我们会看到这个向量绝对不受“NYC”一词的影响。这是因为右侧的所有单词,也称为单词的右上下文,都被掩码处理。解码器只访问单个上下文,可能是左上下文或右上下文,而不是从左右两侧的所有单词中受益。
掩码自注意机制通过使用额外的掩码来隐藏单词两侧的上下文,与自注意机制有所不同。单词的数值表示不会受到隐藏上下文中单词的影响。因此,何时使用解码器就显得重要,解码器和编码器一样可以作为独立模型使用。由于它们生成数值表示,因此可以应用于各种任务。
然而,解码器的强大之处在于单词仅能访问其左上下文。仅能访问左侧上下文,使其在生成文本方面天生优秀,能够根据已知单词序列生成单词或单词序列。这被称为因果语言建模或自然语言生成。😊
这是因果语言建模如何工作的一个例子。我们从一个初始单词开始,即“my”。我们将其作为解码器的输入。😊 模型输出一个数字向量,这个向量包含关于序列的信息,在这里是一个单词。我们对这个向量进行小的转换,使其映射到模型已知的所有单词。
这是一种映射,被称为语言模型头。我们确定模型认为最可能的下一个单词是“name”。然后,我们将这个新单词添加到初始序列中。从“my”开始,我们现在的序列是“my name”。这就是自回归方面的体现。😊。
自回归模型将过去的输出重用作为输入,接下来的步骤也一样。我们再次进行相同的操作。我们通过解码器处理该序列,并提取出最可能的下一个单词。在这种情况下,是单词“is”。我们重复这一操作,直到感到满意。从一个单词开始,我们现在生成了一个错误的句子。我们决定在此停止。
但我们可以继续一段时间。例如,GPT-2的最大上下文大小为1024。我们最终可以生成多达1024个单词,解码器仍然会对前面的单词和序列有一定的记忆。😊。
嗯。
数据可视化神器 Tableau!无需编程,使用拖拽和点击就能做出超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P11:11)Tableau 练习 - ShowMeAI - BV1T341117q7
在这个练习中,你将把食品 L 文件加载到 Tableau 中,并使用食品 ID 为两个工作表应用数据关系。然后你将使用 Showmi 方法创建两个视图。工作表 1 包含课程和准备时间,而工作表 2 包含风味资料和食品 ID,这将被转换为度量。
让我们开始加载数据集。将 Excel 文件食品清单拖入开始页面。加载数据后,这将引导你进入数据源页面,在那里你可以将工作表拖入画布。将类别工作表拖入画布,然后连接食品时间工作表以创建关系。将字段设置为食品 ID。一旦设置了关系字段。
现在我们可以关闭编辑关系窗口,然后打开一个新的工作表。因为我们将使用 Showmi 方法。我们需要选择适合在图表中使用的字段。点击课程,然后按住键盘上的控制键,点击准备时间。一旦选择了字段,点击右上角的 Showhow me 按钮。
然后从选择中选择横条形图。这将从我们选择的字段生成横条形图。通过拖动课程轴上的一个字段来调整条形的大小。这完成了我们的第一个视图。点击添加工作表按钮以创建另一个工作表。首先。
我们需要将食品 ID 转换为度量。右键单击食品 ID 字段,然后点击转换为度量。这会将食品 ID 字段变为绿色,这意味着它已被转换为度量。接下来,点击食品 ID,然后按住控制键选择“个人资料”。
然后导航到“显示我”按钮并选择树图。这将从我们选择的两个字段生成树图。你可以进一步根据树图中的框调整标签或字段的大小。进入标签卡,选择字体大小,然后点击应用进行更改。
这完成了第二个视图和我们的第一次练习。
数据可视化神器 Tableau!无需编程,使用拖拽和点击就能制作出超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P4:4)Tableau功能探索 - ShowMeAI - BV1T341117q7
简单易用的界面让分析师能够高效地处理数据。为了这节课,我们将探索 Tableau 的直观界面,并学习每个部分的功能,解释你在使用该平台时会遇到的关键术语。
打开 Tableau Public 后,我们同意从这个窗口的起始页面开始。我们可以打开最近创建的工作簿,通过连接到数据源创建一个新工作簿,或探索来自社区的 Tableau 内容。该页面由三个不同的窗格组成:连接、打开和发现。最右侧是发现窗格,通过这个窗格。
你可以在 Tableau Public 中找到热门视图的链接,通过观看培训视频来提升你的 Tableau 技能,并在资源部分获取博客和新闻的最新信息。页面的中央部分是打开的窗格,这里包含最近创建的工作簿缩略图,点击其中一个将打开该工作簿。工作簿是一个包含多个表的文件集合。
仪表板和故事。
你可以通过点击缩略图左上角的固定图标在起始页面上固定工作簿。固定的工作簿将始终出现在你的起始页面,这在你经常使用特定工作簿时非常有用。要将其从起始页面中移除,请点击缩略图上的 X 按钮。起始页面的最后部分是连接窗格。
你可以使用此功能连接平面文件或创建新的数据连接。你可以从列表中选择一个平面文件来打开文件浏览窗口,或者将文件直接拖入页面以创建新的文件连接。
插入文件后,它将引导我们进入数据源页面。数据源页面允许用户建立数据连接、混合数据、过滤数据,并对字段或列进行基本调整。该页面由四个主要区域组成:左侧窗格、画布、数据网格和元数据网格。
左侧窗格显示已连接的数据源及其详细信息,数据连接部分下方是平面文件的文件名,适用于数据库连接。所列出的将是数据库或模式。通过下拉菜单,你可以编辑当前连接、删除或重命名。连接下方是可用工作表的列表。这里有订单、退货和用户,这些是我们之前插入的 Excel 文件中包含的工作表。
左侧窗格的左边是操作按钮。撤销、重做和保存Tableau徽标,显示启动页面,刷新按钮将在数据源页面右上方刷新数据源,画布有两个层。但首先,让我们将订单工作表和返回工作表拖入画布并应用它们的数据关系。
这是画布的逻辑层。在这里,你可以创建逻辑表之间的关系。要显示画布的另一层,双击其中一个表或工作表。这将显示一个新窗口,即画布的物理层。在这里,我们可以在表之间添加连接和并集。
当我们讨论如何使用多个数据源时,我们将了解更多。画布下方是数据网格。它显示了我们指示的连接或文件中的前1000行数据。我们可以用它对数据源进行一般修改,例如排序和隐藏字段、重命名、改变数据类型以及创建新的计算字段。接下来。
点击数据网格左上角的列表图标以查看元数据网格。此窗格显示所选表中的所有字段,它们的表名和远程字段名。接下来,点击页面下方选项卡上的工作表1以导航到tableau工作区。tableau工作区是我们创建图表时主要待的地方。
单个工作表称为工作表,包含单个数据视图。视图是数据的可视化表示或图表本身,它位于工作表中。
Tableau工作区由菜单、工具栏、数据窗格、卡片和货架组成。顶部的功能区列出了不同功能的选项卡。文件选项卡让你保存文件、打开工作簿和退出应用程序。数据选项卡具有与数据源相关的功能,在这里你可以创建新的连接、替换和修改当前源,以及编辑数据关系。接下来。
在这个选项卡中,我们有工作表选项卡,你可以创建一个新的工作表。显示或隐藏工作表的部分,并查看其属性。工作表选项卡旁边是仪表板选项卡和故事选项卡,它们具有基本的仪表板和故事功能。由于我们当前正在编辑视图而不是仪表板或故事,因此大多数功能不可用。
接下来,我们有分析选项卡。它在执行视图分析方面具有额外功能,例如配置标记和标签。计算百分比,显示趋势线,并在其旁边应用预测,接下来是地图选项卡。地图选项卡设置地理可视化的选项。
地图选项卡之后是格式选项卡,该选项卡帮助用户调整或个性化可视化或视图的外观。我们可以编辑字体、对齐、阴影、线条和其他视觉属性。旁边的窗口选项卡让用户显示或隐藏工作区的某些部分,如工具栏、状态栏和侧边栏,同时可以放大视图以进行演示模式。
我们有帮助选项卡,包含指向Tableau支持社区的链接,以及语言和应用程序性能的设置。在功能区下方是工具栏,按钮根据当前工作表的内容而定,某些按钮在当前工作表不适用时会被禁用。与数据源页面相同,前几个按钮是链接到起始页面。
撤销和重做按钮,保存按钮旁边是新数据源按钮,您可以在此插入新的数据连接。旁边有三个工作表按钮,第一个用于创建新的工作表、故事或仪表板。其次是重复按钮,第三个是清除按钮,用于移除当前工作表上的所有内容。
工作表按钮之后是交换和排序按钮。交换按钮用于交换行和列。旁边是按升序和降序排序的按钮。之后是高亮按钮,可在工作表中启用高亮显示。创建组的组成员按钮😊,以及显示或隐藏标记标签的按钮。
旁边的固定按钮用于将图表的坐标轴固定在特定或动态范围内。旁边的下拉菜单用于适应视图。接下来是一个用于在页面上显示或隐藏卡片的下拉菜单。最后一个按钮是切换到演示模式。
Tableau工作区的左侧有侧边栏,包含数据窗格和分析窗格。数据窗格包括所有字段、集合和参数。您可以使用搜索栏搜索整个列表或按名称或数据源顺序排序。分析窗格允许用户对视图应用高级分析,例如常量线。
预测和参考线。中心画布是工作区域,展示我们的可视化。环绕工作区域的卡片和架子用于指示视图的放置和显示方式。列和行架构成图表的结构。字段被放置在这些架子上,以指示它是在标题上还是在坐标轴上。
过滤器架允许您指定要包含和排除哪些数据。
过滤器是在视图中限制显示数据的控件。
筛选器架下是马克斯卡片。这是表格中视觉分析的关键元素。因为你可以通过将字段拖动到标记卡的不同视觉属性中来添加上下文和细节。让我们尝试创建一个视图作为示例。将客户细分拖入行架。这会在表格视图中创建四行客户细分值。接下来。
从数据面板中拖动利润字段,并将其放在行架中的客户细分后面。这将自动创建按客户细分计算利润总和的柱状图。现在,添加一个订单日期到列架。它将柱状图转换为折线图,因为我们添加了一个连续字段作为列。最后,将一个区域字段拖入标记卡并放在颜色上。
这将为每条线图设置区域粒度,每个区域由不同的线条和颜色分隔。页面架允许你将视图分解为一系列页面,以便更好地分析特定字段如何影响视图中的其余数据。
例如,让我们将订单日期从列架拖动并放到页面上。这会按订单日期的年份分隔视图,我们可以通过右侧面板上的控件翻阅每一年。右上角的“显示我”按钮允许用户通过突出显示可能的图表选择图表或视图类型。😊,带橙色轮廓的图表是为所示数据选择的最佳匹配。
工作区的底部有状态栏。它显示菜单项的描述以及有关当前视图的信息,如标记及其当前的行和列数。要在工作表之间组织和导航,你可以使用位于工作区右下角的工作表标签、胶卷条和工作表排序器的按钮。
第一个按钮是工作表排序器,它以缩略图的形式在单个页面上显示工作簿中的所有工作表。你可以在此视图中拖放缩略图以重新排序工作表。接下来是胶卷条。胶卷条在工作簿底部显示,展示工作表的缩略图。最后一个按钮是工作表标签。每个工作表将在工作流底部表示为一个标签。
现在,让我们导航到仪表板页面。点击新建仪表板按钮来创建一个。仪表板是多个视图的集合,让你可以同时比较多种数据。中心画布的默认白色背景将代表你的仪表板的外观。
在位于左侧的仪表板窗格中,有几个自定义仪表板的功能。第一个选项允许你设置仪表板的大小并显示或隐藏设备预览,可以切换以查看仪表板在不同屏幕分辨率下的外观。在按钮下方,你可以指定仪表板的范围、自动或固定大小。接下来是表单部分。
你可以将可用的表单拖放到画布上以将其包含在仪表板中。除了表单外,你还可以从对象部分插入其他对象,如图像、容器和静态文本。
仪表板窗格旁边是布局。此窗格让你调整每个表单和对象的布局位置。以及其大小和填充。在这个窗格中,你还可以配置仪表板的边框和背景颜色,布局选项卡下是项目层次结构。
它列出了当前放置在仪表板中的表单和对象之间的关系。
最后,让我们去故事页面,点击底部的新故事按钮以创建一个。中心画布将显示故事的外观。可以在左侧的故事窗格中设置其他配置。在故事窗格的第一部分是添加新故事点的选项。
你可以选择创建一个新的空白故事或复制当前故事。下面是可以插入到故事中的表单和仪表板列表。将一个表单拖入画布以将其添加到故事中,添加标题。我们可以双击顶部的默认文本框以编辑其内容。
如果你想在故事中添加额外的文本框,请从故事窗格拖动文本对象并放置到故事中的所需位置。故事标题位于故事画布的右上角。你可以通过双击标题进行编辑。如果选择隐藏它,你可以在故事窗格中取消选中显示标题选项。要编辑故事的大小,
点击故事窗格的大小部分下拉菜单。你可以选择设置固定大小、自动大小或范围。故事窗格旁边的布局选项卡允许你设置导航器的样式。导航器使你能够编辑和组织你的故事点。
这只有在你有超过一个故事点时可见。
数据可视化神器 Tableau!无需编程,使用拖拽和点击就能制作出超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P7:7)Tableau 中的数据源 - ShowMeAI - BV1T341117q7
我们在创建 Tableau 数据源连接时利用了数据源页面。让我们看看它提供的其他功能,这些功能可以帮助我们修改数据并为可视化做准备。首先,让我们查看左上角的连接部分。数据库部分列出了你已连接到 Tableau 的当前文件或数据库,具体取决于数据源。
此列表包含数据源的标题和数据连接的类型。你添加的第一个数据源将标记为蓝色。请注意,如果我们再添加第二个数据连接,新的连接将有不同的颜色标签。这是为了方便识别和区分每个独立连接。你还可以观察到在数据预览和元数据网格上应用的颜色方案,其中来自不同连接的选定工作表或表格将有不同颜色的标签。使用连接部分的添加按钮添加新数据连接,就像我们之前演示的那样。
不会替换列表中的当前数据连接。相反,它将插入第二个可以与您链接的第一个连接相关联或连接的连接。如果你想替换其中一个连接,请导航到你想要替换或编辑的连接,然后点击其下拉按钮。在菜单中选择“编辑连接”。
要打开文件 B 或数据库连接菜单,在这里你可以选择新的连接。请记住,这里列出的连接列表并不代表工作簿中所有可用的数据源。这仅适用于工作表 1 数据源,如画布上的数据源名称所示。一个数据源可以始终包含一个或多个数据连接。
你可以通过点击左上角的圆柱图标并在列表中选择“新数据源”来拥有一个与此连接分开的新数据源连接。
这将打开一个窗口,显示 Tableau 支持的所有数据源的完整列表。
如果你希望删除已创建的数据源,请确保该数据源当前已被选中,如画布上数据源名称所示。然后在功能区的“数据”菜单中选择“关闭数据源”。除了数据源名称外,我们在画布右上角也有使用单选按钮的连接类型。
你可以选择使用提取连接或实时连接到你的数据源。默认情况下,Tableau 将连接类型设置为实时。实时连接意味着它与底层数据直接连接。实时连接提供了实时更新的便利,数据源中的任何更改都会自动反映在 Tableau 中。
但是实时连接也依赖于数据库进行所有查询。因此,它并不总是优化为快速性能。您的数据查询速度将仅与数据库本身一样快。工作簿的速度也可能受到您的网络速度、流量和任何自定义SQL的影响。具有实时连接的复杂工作簿也可能对一些传统数据库造成压力。提取。
另一方面,提取是针对聚合优化的数据快照,加载到系统内存中以便快速回调进行可视化。当您使用提取连接类型时,Tableau会创建一个TDE或Tableau数据提取文件。当您从本地文件(如CSB或Excel工作簿)或本地数据库创建提取时,您通过优化加快了工作簿的速度。因此。
Tableau不需要数据库来构建可视化。相反,Tableau的内存数据引擎直接查询提取。提取通常比实时连接快,尤其是在具有大型数据集、过滤器和计算的复杂可视化中。
由于提取已嵌入,因此即使在离线状态下也可以使用您的数据源。这种连接类型的一个缺点是数据需要刷新才能接收来自原始数据源的更新。如果您的数据结构有太多行和列,提取刷新可能会变得缓慢。
在画布中选择提取连接类型将显示两个新按钮,以编辑和刷新当前提取。点击编辑会打开一个新窗口,您可以设置提取数据的存储方式。定义过滤器,汇总数据,并选择要包含在提取中的行。在连接类型之后是添加过滤器的部分。在您的数据。
这将根据您指定的过滤器减少数据源中的数据量。数据源过滤器在您发布工作簿或数据源时,对于限制用户能够看到的数据非常有用。当您将数据源发布到Tau服务器时,数据源及其任何关联的文件或提取都会移入服务器。
在发布数据源时,您可以定义下载或修改数据源的访问权限,还可以选择能够通过Tableau服务器远程查询该数据源的用户和组。在数据源页面上点击添加按钮将打开一个新窗口,您可以在其中添加、编辑和移除应用于数据源的过滤器。要添加新的过滤器,点击添加按钮,然后选择一个字段作为过滤器基础。一旦您选择了字段。
现在,您可以通过从列表中选择可用值来指示过滤器值,设置通配符,指示条件或通过字段或公式的顶部记录进行过滤。数据源页面上的另一个实用功能是数据解释器。数据解释器通过检测标题、脚注来帮助您清理数据。
空单元格和其他多余的列/行用于识别数据集中实际的字段和值。
它甚至可以检测到额外的表和子集,以便你可以独立处理数据的一个子集。例如,这里我们有一个字段名称未被Tableau识别的CSB文件。我们通过勾选工作表列表上方的数据解释器复选框来启用数据解释器,观察数据如何变化。这样,F1到F5列现在已被以前在第二行的正确字段名称替换。
它还将国家名称的数据类型从字符串更改为地理类型。要查看数据解释器所做的所有更改,可以点击查看结果,这将输出一个Excel文件,列出使用原始数据副本的变化,并带有颜色编码的单元格。
数据解释器功能并不总是适用于所有数据集。如果数据已经处于Baau可以解释的正确格式,它将不会在数据源页面显示。具有超过2000列或超过3000行的文件将不会被数据解释器处理。
数据源不受支持。数据解释器仅接受Excel文件、CSB、P和Google表格。
如果数据解释器所做的修改不足,你可以随时使用数据面板中的功能进行基本的数据格式化。例如,让我们继续使用我们通过数据解释器清理的CSV文件。由于列处于宽格式,我们需要以一种方式透视数据,使年份在一列中,数值在另一列中,以便于可视化。
为此,选择将被透视的字段。在这种情况下,我们将选择2001到2004列。点击2001,同时按住键盘上的Shift键,然后点击2004列以选择这三列。然后右击鼠标,在菜单中选择透视。
这将使用选定的数据创建两个新列,字段名称将作为透视字段名称,透视字段值。现在,你只需重命名它们。要重命名一列,选择一个并点击其下拉按钮,选择重命名功能,然后输入新的列名称。
你也可以通过双击字段名称并输入新字段名称来重命名字段。如果你希望恢复原始文件名称,请点击列的下拉菜单并选择重置名称。除了重命名功能,你还可以应用排序。将鼠标悬停在特定字段名称上,直到排序按钮出现在右侧。
点击排序按钮一次将数据按升序排序,如图标所示。再次点击排序将其排序为升序和降序。第三次点击排序按钮将移除排序。正如我们在早期课程中讨论的,Tableau 会根据一系列常用模式自动分配数据类型给数据。
这些数据类型在数据面板和元数据视图中以图标的形式显示。要更改字段的数据类型,点击数据类型图标并从菜单中选择新的数据类型。应始终观察正确的数据类型,因为它将决定可以应用于该字段的可视化、计算和功能。你还可以使用数据平面上的功能将字段拆分为单独的列。
点击串联字段的下拉菜单,选择拆分功能。默认情况下,Tableau 使用空格作为分隔符将其拆分为两列。如果你想指定符号作为分隔符,可以在字段下拉菜单中使用自定义拆分功能,选择自定义拆分功能。这将打开一个新窗口,你可以在其中指示特定的分隔符或定界符,以及将从第一列、最后一列或整列拆分的列数。
最后,我们有别名功能。别名是维度中成员的替代名称,以便它们在视图中以不同的标签出现。要创建别名,选择字段并点击菜单中的下拉菜单,选择别名。这将显示一个新窗口,列出所选字段上可用的所有成员或值。要创建别名,请在值列下重命名别名。这样,Tableau 将使用别名作为图表标签中可见的值。
但是你仍然可以在数据平面上看到其原始值。😊请注意,别名仅为离散维度创建,因为这些类型的数据具有有限的值。此功能不适用于连续字段和度量。我们学到的基本格式化功能都在 Tableau 内部完成。
这些都不适用于原始数据源。数据库部分列出当前连接到 Tableau 的特定数据源下的文件或数据库。这列出了数据源的标题和数据连接类型。你添加的第一个数据源将被标记为蓝色。
请注意,如果我们为其添加第二个数据连接,新的连接将有不同颜色的标签。这是为了便于识别和区分每个独立的连接。你还可以观察数据预览和元数据网格上应用的颜色方案。
在不同连接中选择的工作表或表将具有不同的颜色标签。使用连接部分的添加按钮添加新数据连接不会替换列表上的当前数据连接,而是将插入第二个连接,可以与第一个连接相关联。如果你想替换其中一个连接。
导航到你想要替换或编辑的连接,然后单击其下拉按钮。选择编辑连接以打开文件浏览或数据库连接菜单,在这里你可以选择新的连接,如果你希望删除已创建的数据源。
确保源当前被选中,如画布上数据源名称所示,然后导航到功能区的数据菜单并选择关闭数据源。除了数据源名称外,我们在画布的右上方还有连接类型,使用单选按钮。
默认情况下,你可以选择使用或提取连接到数据源。Tau将连接类型设置为实时,选择画布中的提取连接类型将显示两个新按钮,用于编辑和刷新当前提取。单击编辑会打开一个新窗口,你可以在其中设置提取数据的存储方式。
定义过滤器,聚合数据并选择在连接类型后包含在提取中的行,是用于在数据上添加过滤器的一个部分。这将根据你所指示的过滤器减少数据源中的数据。数据源过滤器在发布工作簿或数据源时,对于限制用户可以看到的数据非常有用。当你将数据源发布到Tau服务器时,数据源及其任何相关文件或提取将被移动到服务器中。
发布数据源时,你可以定义下载或修改数据源的访问权限。你还可以选择哪些用户和组可以通过Tableau的服务器远程对该数据源发出查询。单击数据源页面上的添加按钮将打开一个新窗口,在那里你可以添加、编辑和删除应用于数据源的过滤器,以添加新过滤器。
单击添加按钮,然后选择一个字段作为过滤器的基础。一旦你选择了字段,现在可以通过从列表中选择可用值来指示过滤器值。设置通配符,指示条件或根据字段或公式按顶部记录过滤。
数据源页面上的另一个便捷功能是数据解释器。让我们通过勾选工作表列表上方的数据解释器复选框来开启数据解释器,并观察其如何改变数据。这样做后,F1到F5列现在已被原来的适当字段名称替换。
在第二行,它还将国家名称的数据类型从字符串更改为地理类型,以检查数据解释器所做的所有更改。你可以点击查看结果,这将输出一个Excel文件,列出使用原始数据的更改,并带有颜色编码的单元格。
数据可视化神器 Tableau!无需编程,使用拖拽和点击就能制作出超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P9:9)在 Tableau 中创建新视图 - ShowMeAI - BV1T341117q7
在创建视图时,你应始终从一个将通过可视化回答的问题开始。你想知道今年的销售增长是多少吗?你可以将客户分为哪个类别?一旦你心中有了问题,就可以开始构思你的视图。
在 Tableau Desktop 中创建视图有四种方法。首先是从数据面板拖动字段并将其放置到卡片和货架上。在这里,我们将销售度量拖动到颜色和标记卡中。然后我们将产品类别添加到标签中。完成后。
现在我们的视图中有一个树形图,矩形显示每个类别的销售额,并且根据销售额的多少进行颜色编码,从最少的淡蓝色到最多的深蓝色。😊如果你已经熟悉字段和卡片的位置如何影响可视化,这种方法非常适合使用。
创建视图的第二种方法是双击数据面板中的一个或多个字段。在这个第二个工作表中,双击维度字段邮政编码。这将执行查询以处理邮政编码并生成其纬度和经度。完成后,双击度量字段运费。
运费决定了在创建的符号图中每个点或圆圈的大小。如果你对使用的图表或图形类型没有特别要求,这第二种方法非常实用。因为 Tableau 会根据你选择的字段类型自动生成视图。第三,你可以通过选择数据面板中的一个或多个字段来创建视图。
然后使用“显示我”来设置图表。在此视图中,选择维度客户细分。然后按住键盘上的控制键并选择度量订单数量。一旦需要的字段被选中,导航到右上角的“显示我”按钮并选择水平条形图。选择图表后,Tableau 会生成按客户细分分组的水平条形图,每个条的长度基于总订单。
使用“显示我”方法对于初学者来说非常好,可以让他们熟悉基于所选字段可用的图表类型。第四种方法是将字段拖入画布的字段拖放区域。将订单日期拖到列标题区域。一旦完成,将产品名称拖到行区域的最左侧。
显示出一个折线指示器。最后,将利润字段添加为值。结果创建了一个文本表。请注意,这第四种方法仅限于表格视图。
理解字段的放置和类型如何影响输出可视化也是至关重要的。
正如我们从数据概念中讨论的那样。我们将数据分类为维度或度量,然后再进一步分类为离散或连续。让我们看看每种类型如何创建不同的图表。离散维度创建值的类别或组。例如。
我们在这个表格上有一根条形,标记了销售的总和。观察当我们添加一个离散维度时会发生什么。将产品类别拖到列架上。正如你所看到的,它使用产品类别将条形分成了三个,这是一种离散维度字段。
大多数情况下,维度被分类为离散,因为它们包含单独的、唯一的值。但例外的是日期数据类型字段。日期可以转换为离散或连续。让我们看看它在这个表格中的可视化效果。我们仍然使用销售作为度量值。
将订单日期拖到列架上,然后单击字段下拉并将其转换为连续。这会生成一个根据销售数据按年份自动排序的折线图。连续维度在可视化中创建一个数字轴。现在,让我们看看连续度量的外观。在我们创建的相同折线图上。
在行架上放置的销售数据设置为连续度量。正如你在图表的纵轴上观察到的,它创建了一系列值,从0到400万。度量大多被分类为连续,因为它们的值范围。但这并不意味着你不能使用离散度量。
让我们清除此表格上的项目并创建一个新图表。将产品子类别的离散维度字段拖到行架上。然后我们加入度量,拖动销售数据并将其放在产品子类别后的行上。请注意,由于这仍然是一个连续度量,它创建了一个条形图。
每行都有各自的轴。当我们将其转换为离散度量时,会发生什么呢?在销售字段的下拉列表中,将其设置为离散。由于转换,条形被替换为普通文本。离散度量在可视化中显示为标签或普通文本。创建视图时另一个重要的部分是标记卡。
标记卡提供了控制点或标记在视图中外观的能力。它可以为图表的标记应用不同的属性,从而增加附加的含义和细节。标记卡的第一部分是一个下拉列表,你可以控制在视图中显示的标记类型。默认标记设置为自动,Tableau会生成最适合数据的标记类型。
在此工作表中,我们在列中有一些销售额,在行架中有一些利润。由于这两个字段在架子中都是连续度量,Tableau 会自动生成一种形状标记类型,以绘制这两个度量之间的总值。自动选择的标记类型符号在下拉菜单中可见。
当我们将销售总额更改为离散维度时,请观察变化。我们先移除销售总额的胶囊,然后拖入客户细分字段。现在每个值的标记设置为条形。标记卡的符号也更改为条形。将标记类型设置为自动将让 Tableau 根据我们拖入行和列架的字段类型选择标记。这并不意味着您不能根据自己的喜好更改标记。
如果您需要不同的视图,您总可以在列表中选择不同的标记类型。例如,如果我们将标记类型设置为区域,则可以轻松将此条形图更改为面积图。标记类型下方是使用不同颜色的颜色,让用户轻松区分视图中的不同标记。默认颜色设置为蓝色。
但您可以根据静态颜色自定义此项,通过从调色板中选择新颜色,或将字段拖到颜色卡中。例如,让我们将标记类型更改回条形,然后将客户细分字段从数据面板拖到颜色卡中。这为每个客户细分的条形应用个别颜色,以更改所使用的颜色。
您可以点击颜色卡并在新窗口中选择编辑颜色按钮。您可以从下拉菜单中分配不同的调色板,或使用当前调色板为每个细分选择新颜色。接下来,我们在当前条形图中有大小卡。这调整条形的宽度。您可以使用滑块增大或缩小标记的大小。与颜色一样。
您还可以通过将字段拖到大小卡上来设置动态大小。形状卡仅在卡片设置为散点图、符号图或圆形视图时可见。在此工作表中,我们有一个散点图,目前只有一个单一的点,显示总销售额与利润的交集。
让我们在形状卡中添加一个字段,看看会发生什么。将产品类别字段添加到形状卡中。在之前我们将离散维度指定为形状的指示器。单一的点现在根据维度的成员划分为三种不同形状的标记。
点击形状卡片将打开一个新窗口,您可以选择使用的形状或更改为不同的形状调色板。此外,Tableau 在画布右侧提供了一个图例作为参考。另一种向视图添加单独标记的方法是使用详细信息卡片。将另一个维度拖放到详细信息卡片中会为视图添加另一个粒度级别。
例如,让我们将产品子类别添加到散点图的详细信息卡中。这会在网格中添加额外的产品点,但不会改变结构,并且点仍然通过形状卡分开。在形状卡上方是标签。简单来说,它决定了在视图中显示的标签或文本值。例如。
让我们继续处理这个散点图,并为每个点指示一个标签。从数据窗格中拖动另一个产品类别字段到标签卡。这为每个点添加了产品类别名称。点击标签卡时,可以使用额外选项更改字体颜色和标签对齐。
在处理类似于这个第四个工作表的表格数据时,标签被文本替换。它允许你将纯文本值插入表中。你可以通过点击文本卡并点击三个点打开文本编辑器窗口来向表中添加额外的字段或文本。在这个窗口中,你还可以设置字体、大小、样式和颜色。
表格中文本的对齐。最后,我们有工具提示。当你悬停在视图中的一个或多个标记上时,工具提示会显示信息。默认情况下,工具提示将包含我们添加到视图中的字段信息,例如列和行上的字段,以及用于标记的字段。
工具提示可以包含动态和静态文本,以在工具提示中添加字段信息。将字段拖入工具提示卡。例如,让我们将度量订单数量设置到工具提示中。将其拖动到工具提示卡中作为度量或维度的聚合值。
你可以通过点击工具提示卡编辑文本格式和排列。在 Tableau 桌面中创建视图的方式有四种。第一种是将数据窗格中的字段拖动并放置到卡片和货架上。在这里,我们将销售度量拖入颜色卡和标记卡。
然后我们将产品类别添加到标签中。这样做后,我们的视图中现在有一个树状图,显示每个类别带来的销售额,并且根据销售额从最少的浅蓝色到最多的深蓝色进行了颜色编码。
创建视图的第二种方式是双击数据窗格中的一个或多个字段。😊在这个第二个工作表中,双击维度字段邮政编码。这将执行查询以处理邮政编码并生成其纬度和经度。完成后,双击度量字段运费,运费决定了在符号图中每个点或圆圈的大小。
第三,你可以通过在数据面板中选择一个或多个字段来创建视图。然后使用“显示我”来设置图表。在此视图中,选择维度客户细分。然后在键盘上按住控制键并选择度量订单数量。一旦所需的字段被选择,导航到右上角的“显示我”按钮并选择水平条形图。
一旦选择了图表,Tableau会生成按客户细分分组的水平条形图,每个条形的长度基于总订单数量。第四种方法是将字段拖入画布的下拉字段网格。将订单日期拖入列标题网格。一旦完成,将产品名称拖入行网格,放在最左侧。
这显示了一个折线指示器。最后,添加字段利润作为值。因此,创建了一个文本表。请注意,这第四种方法仅限于表格视图。当我们创建视图时,学习标记卡也是另一个重要部分。标记卡提供了对视图中点或标记外观的控制。
它可以为图表的标记应用不同的属性,从而增加额外的意义和细节。标记卡的第一部分是一个下拉列表,您可以在其中控制视图中显示的标记类型。默认标记设置为自动,Tableau会为数据生成最佳标记类型。在此工作表中,我们在列中有销售总额,在行架中有利润总额。
由于架子上的两个字段都是连续度量,Tableau自动生成一个标记类型来绘制两个度量之间的总值。自动选择的标记类型符号在下拉菜单中可见。当我们将销售总额更改为离散维度时,请观察变化。
让我们删除销售总额药丸并拖入客户细分字段。每个值的标记现在设置为条形。标记卡的符号也更改为条形。将标记类型设置为自动,让Tableau根据我们拖入行和列架的字段类型选择标记。如果需要不同的视图,你始终可以在列表中选择不同的标记类型。例如。
我们可以轻松地将这个条形图更改为区域图。如果我们将标记类型设置为区域。在标记类型下是颜色,使用不同的颜色,让用户能够轻松区分视图中的不同标记。默认颜色设置为蓝色,但你可以根据静态颜色自定义,从调色板中选择新颜色。
或通过将字段拖入颜色卡。例如,让我们将标记类型更改回条形图,然后将客户细分字段从数据面板拖入颜色卡。这为每个客户细分的条形图应用了不同的颜色。接下来,我们有大小卡。在当前的条形图中,这会调整条形的宽度。
你可以使用滑块来增加或减少标记的大小。形状卡仅在设置为散点图、符号图或圆形视图时可见。在这个表中,我们有一个散点图,目前只有一个单一的点,显示总销售额和利润的交集。
在详细信息卡中添加另一个维度会为视图增加一个粒度层级。例如,让我们将产品子类别添加到散点图的详细信息卡。这会在网格中添加额外的产品点,但不会改变结构,点仍然通过形状卡按形状划分。
形状卡上方是标签,简单来说,它决定了在视图中显示的标签或文本值。将另一个产品类别字段从数据窗格拖入标签卡。这为每个点添加了产品类别名称。最后,我们有工具提示。工具提示是在视图中悬停在一个或多个标记上时出现的信息。
默认情况下,工具提示将包含我们已添加到视图中的字段信息,例如列和行上的字段。
数据可视化神器 Tableau!无需编程,使用拖拽和点击就能制作超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P2:2)Tableau 产品套件介绍 - ShowMeAI - BV1T341117q7
Tableau 产品套件由几款软件组成,可以分为两个部分,开发工具。用于创建图表或视图,以及生成报告,连接或合并数据并形成仪表板。Tableau Prep。
Tableau Desktop 和 Tableau Public 属于这一类别。共享工具,主要用于共享或发布使用开发工具创建的报告。Tableau Server、Tableau Online 和 Tableau Reader 是共享工具。
让我们从开发工具开始。Tableau Desktop 允许用户创建视图和仪表板,并允许用户自定义报告。它有多个功能,允许用户进一步改善他们的可视化,并且还可以连接并执行简单的数据合并。它主要由目前在分析和报告领域工作的专业人士使用。
Tableau Desktop 有两种类型,基于其连接和发布选项。Tableau Desktop 专业版可以完全访问所有数据源和数据类型。专业版还允许你通过 Tableau 服务器在线共享你的仪表板。另一种版本是 Tableau Desktop 个人版。
与专业版相比,Tableau Desktop 个人版限制更多。它仅能连接平面文件,例如 Excel 和 CSV,且其仪表板不能发布到 Tableau 的服务器上,但你可以将工作簿保存在本地或发布到 Tableau Public 网站。
Tableau Public 是免费的版本,仍然可以让你创建和自定义仪表板。你可以用它连接平面文件,但无法连接实时数据库。与 Tableau Desktop 个人版相比,它不允许你将工作簿保存到本地,但你可以将创建的仪表板发布到 Tableau Public 网站。
它也有 100 万行的限制。这个版本最适合想要尝试产品并探索数据分析的初学者。在本课程期间,我们将利用 Tableau Public。Tableau Prep 是一个自助数据准备工具,提供了一种直观且直接的方式来组合、整理和清理数据。它由两个产品组成。
Tableau Prep Builder 和 Tableau Prep Conductor。Tableau Prep Builder 为你的数据分析提供了一个完整的视图,允许你组合、整理和清理数据,以准备可视化。它有三个协调视图,可以让你查看每个字段或列的行级数据概况以及整个数据准备过程。Tableau Prep Builder 还允许你连接到本地或云中的数据。
另一方面,Tableau prep conductor 让您可以安排、监控和管理数据流。数据流可以发布到 Tableau 服务器或 Tableau On,管理员可以安排何时运行以及何时更新数据,并监控计划的流。
现在,让我们来看看在从开发工具创建工作簿或仪表板后可以使用的共享工具。Tableau reader 是一款免费的桌面应用程序,允许最终用户查看打包的工作簿或提取数据源的仪表板。
在应用程序中,视觉化仍然是互动的,但由于它是只读的,因此无法进行修改。
您仍然可以使用阅读器导出视图和数据,并将视图呈现为幻灯片。 不建议使用此应用程序共享公司的内部仪表板,因为没有安全级别。
Tableau Ser 允许用户在组织的本地服务器或云服务器内共享仪表板。仪表板可以通过浏览器查看,并且可以安排数据刷新和提取。它还支持连接到实时数据源。可以配置本地身份验证、活动目录集成、受信任的身份验证或使用 SML 或 Kber 的单点登录。
它还提供了核心许可选项,允许访客访问。它允许创建和维护多个站点,而无需额外费用。配置用户和权限。Tableau On 是 Tableau 服务器的托管 SaaS 版本。仪表板和数据将保存在 Tableau 组提供和维护的服务器上。
这消除了您管理服务器的需要。与服务器相同。它具有数据管理、云连接和自动更新的功能。您可以通过 Tableau ID、电子邮件地址和密码来验证用户,或者配置一个站点以使用 S Ml 的单点登录。但与 Tableau 服务器不同,它没有访客访问权限。因此,所有观众必须经过身份验证。
Tableau Server 和 Tableau On 都可以与 Tableau Mobile 一起使用。Tableau Mobile 是一款在 iOS 和 Android 上均可用的免费应用程序,可以让您随时随地访问和监控仪表板和 KPI。它经过优化,以便快速直观地访问数据。它具有交互式预览。
这会在您连接到服务器时下载您喜欢的工作簿,以便您可以稍后访问,即使在离线状态下。由于 Tableau desktop 针对移动布局进行了改进,您可以在较小的移动屏幕上以清晰可读的格式查看仪表板。😊。
数据可视化神器 Tableau!无需编程,使用拖拽和点击就能制作超精美的图表。1小时新手教程,从安装到制作图表一气呵成~<快速入门系列> - P5:5)Tableau 数据概念 - ShowMeAI - BV1T341117q7
理解数据概念和正确的结构对高效使用 Tableau 平台至关重要。与您非常熟悉的数据一起工作,可以让您正确可视化并突出您的分析。让我们开始学习应该使用哪种数据结构。
Tableau 最适合格式化为表格的数据,类似于电子表格。即数据采用垂直格式,字段名称位于列的标题中,而数据值则放置在行中。知道这一点后,数据分析的初学者可能会问,如何区分是行还是列?一行或记录包含数据值。
1条数据记录意味着表格中的一行水平行。例如,在这个超市销售的 Excel 文件中,行中的每条数据对应单独的记录。而列则是表格中的单个字段或垂直组。
在这个表中,我们有客户名称列和城市。每列的标题或标签称为字段名称,以避免混淆。只需记住,列是垂直的,行是水平的。有些数据源可能采用宽格式,例如这个难民统计数据集。
这种格式可能更容易让人阅读和理解,但在将这些数据导入 Tableau 时,每一年将被视为单独的列。因此,我们将有2001、2002、2003和2004的独立字段。这使我们很难进行跨时间的分析,因为每个数据存储在不同的字段中。
另一个问题是值没有自己的字段名称或上下文。由于数据采用宽格式,每行代表不同的国家,列显示年份值,因此我们没有任何指示来说明阿尔巴尼亚的数字76、26和2001所对应的内容,以解决此问题。
我们可能需要在将数据导入 Tableau 之前将其重新塑造成高格式。在这种格式下,我们现在有国家名称、年份和难民数量作为每行的字段名称。使用这个数据集进行分析要容易得多,因为每个字段现在代表数据的独特特性。
重新塑造数据集时,有一些额外的检查项。确保顶部没有多余的标题。前两行对 Tableau 理解数据源至关重要,因此最好删除插入在正确字段名称上方的标题和标题。删除数据集中的“总计”。Tableau 可以自动为您计算总数。
因此,保留这些总列是没有必要的,可能会导致重复计算。最好使用传统格式的日期字段,而不是转换为年份、月份或其他日期聚合的格式。Tableau可以自动聚合日期,因此使用传统格式可以更有效地解锁日期字段的全部功能。
现在,让我们看看Tableau如何读取和分类字段。你可能会注意到,在将Tableau连接到新数据源时,每个字段名称上方会出现一个符号。这些符号表示每一列的数据类型。数据类型对给定字段中的数据进行分类,并提供有关数据应如何格式化的信息。
解释以及可以对这些数据执行哪些操作。例如,数值字段可以进行数学运算,而地理字段可以进行地图映射。ABC图标用于文本或字符串字段,如客户名称和产品类型。
日历图标指的是日期字段,如发票日期和发货日期。而带时钟的日历图标指的是日期和时间字段,如上次系统刷新。井号图标指的是数值字段,如利润和订单ID。TF图标显示布尔值,仅包含关系值,或真或假。
最后,我们有Gbe图标,它指的是地理字段,如邮政编码和国家。当你创建新视图时,所有这些字段及其相应的数据类型图标也会列在数据窗格中。这些字段随后会被Tableau分类为维度或度量。维度有蓝色数据类型图标和蓝色胶囊。
当你悬停在字段名称上时,会显示该图标。度量有绿色数据类型图标和绿色胶囊。
维度包含定性值,意味着它们无法测量,而是被描述。维度通常是城市或国家、眼睛颜色、类别、团队名称等。你可以使用维度对数据进行分类、分段并揭示细节。此外,维度会影响视图中的详细程度。度量包含数值。
定量值可以用数字进行测量和记录。度量可以进行聚合。
在数据平面中,维度默认首先列出,后面是通过一条线分隔的度量。为了显示维度和度量之间的区别,我们将在此表中创建一个显示每个产品类别销售情况的条形图。将销售字段拖入行架上。由于销售具有数值,因此被视为度量。
正如我们所见,Tableau自动使用默认聚合度量(求和)对其进行了聚合。聚合是将值聚集成一组,以便将其作为整体进行可视化,而不是使用每个单独的值。由于聚合方法设置为求和,我们现在可以看到柱状图标记为总销售额,接近1500万。我们将在本课程的后续学习中了解更多不同的聚合方法。
接下来,我们来看看维度如何影响这个可视化。我们将产品类别字段添加到列架上。由于产品类别字段是一个维度,它将数据分为三个产品类别。你还可以将产品类别小药丸移动到颜色标记卡中,以按颜色对柱状图进行分段。
Tableau根据维度和度量是离散还是连续来以不同方式表示数据。离散值是单独分开的,彼此不同,因此只能包含某些可计量的值。例如,不同类型的产品是离散的。每个产品的销售也被视为离散的。
连续值可以是无限的。它可以在特定范围内取任何值,包括时间或间隔。一个人的年龄被视为连续的。比赛时间和冰箱的温度也是连续值。
在这个柱状图中,我们有一个利润的连续度量和一个订单日期的离散维度。正如你所见,图表没有X轴线,因为订单日期的年份被设置为离散或独特的年份值。年份被视为每个柱子的标题或标签。现在,让我们将其与这个使用相同数据的第二个图表进行比较。在这个折线图中,我们仍然使用利润的连续度量。
但订单日期的季度被设置为连续,如其绿色小药丸所示。请注意,现在X轴线是可见的。这个订单日期不可排序,因为它遵循从左到右的时间顺序,从最早的日期到最近的日期。
如果你想创建一个显示趋势随时间变化的图表,你可能会选择连续类型的值,但如果你需要一个可以排序的图表,你就必须使用离散值。维度通常是离散的,而度量通常是连续的。然而,这并不总是如此。你可以通过右键点击小药丸显示其菜单,选择离散或连续选项来更改小药丸为离散或连续。
在使用多个数据源时,您可能会遇到术语“关系”和“连接”。这两者都将来自多个表的数据结合在一起,但功能并不相同。数据关系是一种动态、灵活的数据结合方式。可以把它想象成表之间的一个合同。Tableau使用该合同从这些表中提取数据,以构建包含适当连接的查询。
关系没有前期的连接。您只需设置匹配字段来定义关系。该关系在数据源画布的逻辑层中可见,其中一条灵活的线连接或显示表之间的关系。
在上下文感知的Tableau中,它会自动选择基于可视化中使用的字段的连接类型。在分析过程中,Tableau智能地调整连接类型,并保留数据的原生细节级别。您可以看到可视化中字段的细节级别的聚合,而无需考虑底层连接。
连接是一种更静态的数据结合方式。连接必须在分析前在物理表之间定义,并且可以更改而不影响使用该数据源的所有工作表。连接表总是合并为一个单一表。它们在数据源画布的物理层中以维恩图标识连接类型。它还要求您设置连接类型和相关条款。
Tableau建议将关系作为结合数据的首选方法,因为这使数据准备和分析变得更简单、更直观。当您绝对需要时可以使用连接,例如在明确使用特定连接类型或使用支持共享维度的数据模型时。
数据可视化神器Tableau!无需编程,使用拖拽和点击就能做出超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P1:1)Tableau简介 - ShowMeAI - BV1T341117q7
订阅。并点击铃铛图标以开启通知。我们为本教程提供的练习文件可以免费获取。只需点击视频详情中的链接即可下载这些文件。
许多领先行业使用Tableau将现代商业智能应用于他们的系统。Tableau是一个视觉分析平台,成立于2003年,源于斯坦福大学的一个计算机科学项目,旨在改善分析流程,并通过可视化使数据对人们更易于获取。
它目前是增长最快的数据可视化工具之一,功能强大、易于使用,并且可以轻松集成。Tableau已连续九年被Gartner评选为分析和商业智能平台的领导者。
Tableau拥有灵活的前端和直观的界面,通过将拖放操作转化为数据查询来可视化数据。该软件可以连接、融合和提取来自各种来源的数据,例如Excel等平面文件。它还可以连接不同类型的数据库或实时连接,甚至从网络获取数据。Tableau将数据层与展示层分开,并使更新电子表格数据源成为向源电子表格底部简单附加的操作。
Tableau帮助将原始数据简化为易于理解的格式。只需几次点击,你就可以创建既互动又可分享的图表和视图。它易于学习,任何Excel用户和非技术人员都能掌握,但它仍然强大到足以处理复杂的分析过程和高级可视化。
它还可以处理大量数据,而不会影响仪表板的性能。它的仪表板具有响应式设计,可以让你在多种手持设备上查看和操作,例如手机和平板电脑。Tableau可以帮助扩展你组织中使用的数据的频率、深度和多样性。最重要的是,Tableau的可视化分析能力不需要编程技能。
而且它们比传统的报告工具和电子表格报告更有效地展示大规模和细粒度的数据集。
数据可视化神器Tebleau!无需编程,使用拖拽和点击即可制作超精美的图表。1小时新手教程,从安装到制作图表一气呵成~<快速入门系列> - P3:3)商业智能简介 - ShowMeAI - BV1T341117q7
商业智能指的是企业利用的过程和技术,用于收集、整合、分析并以易于理解的格式呈现相关商业信息。
它提供了对业务运营的历史、当前和预测视图,将原始数据转化为可操作的洞察。商业智能工具分析数据集,并使用报告、摘要、仪表板、图形、图表和地图呈现其发现,以向用户提供有关业务状态的详细情报。商业智能的关键目的在于支持企业最终用户评估当前的业务状态,并促进更好的商业决策。
将商业智能(BI)引入不同部门,使企业能够充分利用现有数据。例如,销售团队可以应用商业智能来可视化他们的季度KPI,并有效跟踪当前业绩的表现。
它还可以用于创建收入分析和比较销售表现。人力资源可以实施BI进行工资追踪,同时获得员工满意度的洞察。财务部门也可以通过商业智能帮助进行费用管理。
他们可以利用BI工具进行财务规划和分析。投资于一个可靠的BI战略和系统有助于提高高管对流程的可见性,因为他们可以使用实时数据在仪表板上主动做出决策。使用有效的可视化方法突出洞察,使他们能够快速理解数据,而不是浏览数页年度报告来评估业务。这也有助于衡量和监控新活动和流程的有效性。
BI使企业能够获得关于业务的详细洞察和分析。这些数据帮助他们识别风险和制约因素,以及不利于业务增长的元素。BI系统还推动日常流程的效率,例如自动处理和提取数据。
这反过来可以提高生产力和收入。商业智能可以提供对竞争对手所做事情的洞察,从而使您的组织能够做出明智的决策,并规划未来的努力,以获得竞争优势。
许多领先行业使用Tableau将现代商业智能应用于他们的系统。Tableau是一个可视化分析平台,成立于2003年,源于斯坦福大学的一个计算机科学项目,旨在改善分析流程,并通过可视化使数据更易于人们获取。
数据可视化神器Tebleau!无需编程,使用拖拽和点击就做出超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P10:10)在Tableau中使用多个数据源 - ShowMeAI - BV1T341117q7
在早期的课程中,我们已经识别了连接和关系方法的不同。这两种方法在组合来自一个数据源的多个数据连接时应用。但是,如果我们需要来自不同数据源的数据呢?
Blens与关系或连接不同,数据从未真正结合。相反,blends独立查询每个数据源,结果被聚合到适当的级别。然后,结果在视图中以视觉方式呈现。因此,lenses可以处理不同的细节级别,并且它们与发布的数据源协同工作。例如。
在这个工作簿中,我们有两个数据源。第一个是客户数据源,包含客户信息。第二个是交易数据源,包含交易信息。这两个数据源都有客户ID字段,但细节级别不同。如果顾客多次在商店购买,交易数据源中可以包含多个客户ID。
虽然客户数据源包含唯一的客户ID。
在数据混合时,您的数据源将被识别为主要或次要数据源。这是按每个工作表进行的,意味着新工作表可以有不同的主要和次要数据源。
主要数据源将始终是视图中使用的第一个数据源。例如,在这个视图中,我们将客户ID作为行架上的第一个字段,因此客户数据源被标记为sheet1的主要数据源。在数据窗格中,主要数据源的名称上会有一个对勾。
让我们在这个视图中提供blend。点击交易数据源,然后选择总金额度量字段,将其设置为视图中的文本值。这样一来,就创建了blend,并将交易数据源标记为次要数据源。次要数据源的名称在数据窗格中会有一个橙色对勾指示器。
请注意,在交易数据源的客户ID字段中有一个红色链条图标。这意味着Tableau自动将客户ID作为主要和次要数据源的连接字段。如果字段在两个数据源中具有完全相同的名称,它将自动设置为连接字段,以使blend工作。
连接字段的值必须具有相同的值或成员。您可以通过导航到数据菜单并点击编辑blend关系来编辑连接字段。新菜单让您指定哪个数据源将被设置为主要源,以及将用作链接的字段。如果连接字段处于活动状态,它将以红色链条标记,表示它当前在视图中使用。
如果字段未被使用,将被替换为灰色断链图标。观察如果我们移除客户ID并将其替换为出生日期会发生什么。在这样做后,数据面板中的客户ID字段现在显示为灰色链条图标。它还移除了数据源之间的链接,因此表格中的值变为单一值。
这是汇总金额。灰色链条图标也作为标记,表明该字段可以作为链接字段使用。让我们点击该图标以建立链接字段。一旦激活,正确的值将显示在表格中。在借用数据时,主数据源定义了我们创建的此表格视图的汇总方式。
总金额,最初是按订单或交易汇总的,现在已汇总到客户级别,显示每个客户ID支付的总金额。次要数据源将仅限于那些与主数据源有对应匹配的值,因此在客户数据源中没有记录客户ID的客户将不会包含在视图中。
这个过程类似于传统的左连接,但两者之间的主要区别在于应用汇总的时机。连接是在应用汇总之前先组合数据,而混合则是在组合数据之前先进行汇总。
每个工作表上的混合是单独建立的,无法发布,因为没有真正的混合数据源,仅仅是来自多个数据源在可视化中的混合结果。相反,你需要分别发布数据源,然后在之后混合已发布的数据源。数据混合特别有用,当混合关系链接字段需要在工作表之间变化,或者在组合已发布的数据源时。尽管数据混合一直是使用不同来源数据的唯一方式。
在 Tableau 版本 2020.01 及更早版本中,采用了一种更高效的方式来使用关系组合数据。关系是推荐的组合数据方式,尽可能使用,并且只有在前者不可用时才应使用混合。
之前,我们提到混合类似于左连接。作为复习,连接是在数据源页面的物理层面上应用的。你需要建立一个特定字段用于连接和特定的连接类型。让我们看一下可以在 Tableau 中应用的不同类型的连接。
内连接表将包含在左表和右表中都匹配的记录。如果左侧或右侧的任何行不匹配,它将被完全移除。
让我们看看内连接在这个电影数据源中的应用。该数据连接有两个表。第一个是电影标题,包含六条记录,并包含电影信息和类型。第二个表是导演和投票表。
其中有六条记录,包含导演姓名、平均投票和总投票数。两个表都有标题ID字段,我们将在应用连接时使用。打开物理层,将第二个表拖入此层。Tableau会自动在这两个记录之间应用内连接,因为它识别出标题ID的相似字段。内连接的结果仅包含从标题1到标题5的五条记录。
从左表和右表中各删除了1条记录。删除的记录是t 0,0,0,7,来自左表的《白雪公主》,和t 0,0,0,8,由约翰·福特导演。这两条记录被删除,因为它们在另一张表中没有匹配记录。
接下来是左连接。当你使用左连接来组合表格时,结果是一个包含左表所有值及其在右表中对应匹配的表格。当左表中的某个值在右表中没有对应匹配时,你将在数据网格中看到一个空值。
在示例Tableau数据源中,让我们将连接更改为左连接,并观察输出中包含哪些字段以更改连接类型。点击连接图标,在连接窗口中设置连接类型。选择左连接,并保留使用的连接子句。输出有六条记录。相同的标题1到5在左右表中都有匹配记录。
还有一条ID为T 0007的记录,这是左表中的唯一记录。你可以看到该记录在左表中是唯一的,因为在右表的字段中有空值,包括投票、导演和平均投票。由于这是左连接,因此包括左表的所有记录,即使是那些与右表没有匹配值的记录。
右连接的结果包含右表中的所有值和左表中对应匹配的值。当右表中的某个值在左表中没有对应匹配时,你将在数据网格中看到一个空值。
让我们将此数据源中的连接类型更改为右连接。右连接的结果是五条与标题ID值匹配的记录,以及来自右表的唯一记录t 0,0,0,8。请注意,与左连接相同,该记录在左表中没有匹配值。
所以,年份、标题、类型和发布日期为null。右连接将包括右表中的所有记录。
最终的连接类型是全外连接。当你看到全外连接合并表时,结果是一个包含两个表所有值的表。当任何一个表的值与另一个表没有匹配时,你将在数据网格中看到空值。让我们将连接类型更改为全外连接并观察输出。
结果包含两个表中的所有记录,甚至那些没有匹配值的记录。注意,两个表中的唯一记录仍然有空值,因为它们在另一表中没有匹配。
除了混合、关系和连接,还有另一种将多个来源的数据结合起来的方法。联合以一种依赖于一个表的值到另一个表的方式合并表,与其他方法相比,联合应用或垂直组合值,而不是水平组合。为了在Tableau数据源中应用联合。
使用的表或工作表必须在相同的数据连接中。让我们在这个电影列表上创建一个联合。数据源。
我们有两个工作表,电影列表1和电影列表2,它们具有相同的字段和数据类型。建议在结构相同的表中使用联合。它们应具有相同数量的字段,具有匹配的字段名称和数据类型,以创建联合,双击工作表或表部分的新联合按钮。这会打开一个新窗口,你可以在其中手动或自动指定工作表。
首先尝试使用手动方法,将电影列表1从工作表部分拖到联合窗口。然后将电影列表2从相同部分拖到联合窗口中,放置在电影列表1的下方,完成后点击应用。数据面板现在显示来自两个工作表的所有记录。联合是无缝的,因为它们具有完全相同的结构。
注意表的末尾有额外的字段,称为工作表和表名。这些新字段提供有关联合中原始值来源的信息,包括工作表和表名。当关键的独特信息嵌入在工作表或表名中时,这些字段非常有用。让我们在尝试自动方法之前,移除之前创建的联合。
点击联合的下拉菜单并选择移除。一旦画布被清除,双击新联合以返回联合窗口。在此窗口中选择通配符自动选项卡。你可以设置一个标准,以在联合中包含多个文件。这样。
默认情况下,你不必将所有文件拖入联合窗口。这将搜索我们没有为第一次创建的数据连接指明的路径中的可用文件。你可以启用下面的两个复选框,以扩展搜索到子文件夹和父文件夹,以捕获更多文件。你可以设置的标准仅限于设置通配符或要从该数据源找到的表格或工作簿的确切值。
我们将设置表格的标准以包含电影列表,星号表示电影列表名称后有字母数字字符的组合。在表名中。如果你希望排除带有这种名称的表格,可以在下拉菜单中设置排除。对于工作簿标准。
我们已将其设置为包含 movie list.dot XLSX。由于我们有确切的工作簿名称,你可以在工作簿名称中指明通配符。如果你要包含多个文件,完成后一次应用。与手动联合输出相同,它还包括根据设置的标准从两个表中找到的所有9行。请注意,包含的两个字段是路径和表。此次使用路径而不是表名。
因为我们正在搜索整个文件夹以找到文件。这是为了排除每个文件的确切路径,包括工作簿名称。
与关系或连接不同,混合从未真正结合数据。相反,混合独立查询每个数据源。结果会聚合到适当的级别。然后,结果在视图中一起以可视化形式呈现。在这个视图中,我们使用客户ID作为行货架中的第一个字段。
因此,客户数据源已被标记为表1的主数据源。主数据源在数据面板的名称中标记有勾选标记。让我们在此视图中提供混合。单击交易数据源,然后选择总金额度量字段,并将其设置为视图中的文本值。这样做后。
这创建了混合,并将交易数据源标记为次要数据源。次要数据源在数据面板的名称中会有一个橙色勾选指示器。请注意,在交易数据源的客户ID字段中有一个红色链图标。这意味着 Tableau 自动将客户ID设为主数据源和次要数据源的连接字段。
如果两个数据源的字段名称完全相同,它会自动设为链接字段,以使混合工作。链接字段值必须具有相同的值或成员。
连接在应用聚合之前先合并数据,联合则是垂直地附加或组合值,而不是水平地。我们来创建一个关于这部电影列表的数据源的联合。我们有两个工作表,电影列表1和电影列表2,它们具有相同的字段和数据类型。建议在结构相同的表中使用联合。
它们应该具有相同数量的字段,匹配的字段名称和数据类型。要创建联合,请在工作表或表部分双击“新联合”按钮。这会打开一个新窗口,你可以手动或自动指定工作表。
我们先尝试使用手动方法,将电影列表1从工作表部分拖入联合窗口,然后再将电影列表2从同一部分拖到联合窗口中电影列表1的下方,完成后点击应用。数据面板现在显示来自两个工作表的所有记录。由于它们具有完全相同的结构,联合过程非常顺利。
注意到表的末尾有额外的字段,称为工作表和表名。这些新字段提供有关联合中原始值来源的信息,包括工作表和表名。当分析中嵌入了对你至关重要的唯一信息时,这些字段非常有用。
在下一个部分,你需要下载课程练习文件。点击视频描述中的链接获取这些文件。你也可以滚动查看详细信息,以找到本课程每个部分的时间戳。如果你喜欢这次培训,请给我们留言。
数据可视化神器Tebleau!无需编程,使用拖拽和点击就能做出超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P6:6)连接到Tableau中的数据源 - ShowMeAI - BV1T341117q7
嗯。既然我们已经学习了如何为Tableau构建和准备数据集,让我们尝试将工具连接到不同类型的数据源。创建可视化需要有效的数据连接!
Tableau数据源是源数据与Tableau之间的链接。它本质上是你的数据总和、连接信息、包含数据的表或工作表名称,以及你将在数据上进行的定制。
Tableau数据源可能包含多个对不同数据库或文件的数据连接。连接信息包括数据的位置,例如文件名和路径或网络位置,以及如何连接到数据的详细信息,例如数据库服务器和服务器登录信息。
连接到Tableau数据源之前需要考虑几个因素。首先是位置和访问。你的用户能否访问数据?是否需要用户过滤和行级安全?接下来是形状和整洁度。源数据是否为Tableau良好结构?是否有多余或缺失的数据?
在Tableau中,哪些计算或操作最适合原生执行?
第三是数据模型和数据组合。数据是否分散在多个系统中?
结合每个数据表的最佳方式是什么?
你还应该考虑元数据和定制化。表格和字段名称是否易于理解?是否需要计算?第五是可扩展性、安全性和可发现性。数据源是否应该嵌入工作簿中?源数据会有多大?最后,查看性能和新鲜度。
数据连接是实时的还是提取的?数据刷新计划是什么?
Tableau支持存储在不同位置的多种类型数据,但这将取决于你安装的Tableau产品类型!
Tableau Desktop Professional具有完整的数据源连接,包括对服务器托管数据源的原生连接。它提供多种关系型、多维和基于云的数据库和存储库选项。而Tableau Desktop Personal和Public只能连接到平面文件。
Google Sheets、O数据和Web数据连接器。如前所述,Tableau可以使用来自数据库、平面文件和Web数据连接器的数据。数据非常好用,因为它们已经具有定义的结构,数据类型已经定义,而格式错误的数据会被自动阻止。
这使 Tableau 能够准确理解如何使用每个字段中的数据。然而,有时平面文件被用作数据源。平面文件可能容易出现数据格式错误,并且对列名的变化敏感。确保遵循我们在上节课中提到的数据结构提示,以正确将数据加载到 Tableau 中。但除此之外,平面文件因其灵活性而非常优秀。
您可以轻松调整列并向文件中插入行。如果您决定使用平面文件来更新仪表板,请始终注意格式的一致性。最后,我们有网络数据连接器。网络数据连接器是一个包含 JavaScript 代码的 HTML 文件。您可以使用网络数据连接器连接到可以通过 HTTP 访问且没有现成连接器的数据。它允许开发人员创建自己的数据源连接,以从在 Tableau 中未包含的网页中获取数据。
在本课中,我们将演示如何连接到平面文件和数据库。
在 Tableau 中连接平面文件有两种方法。第一种方法是直接将文件从文件资源管理器拖到平台的起始页面。当加载完成时,会显示一个小进度窗口,并引导您进入数据源页面。第二种方法是通过从起始页面的连接窗格中选择您的数据集的文件类型来插入平面文件。
这将打开一个新的文件浏览窗口,您可以在其中导航到数据源的文件路径。一旦找到文件,选择它并点击打开。这将加载数据,并引导您进入数据源页面。一旦进入数据源页面,您现在可以根据需要为数据添加更多格式。如果您的平面文件只有一个工作表。
它应该在画布的逻辑层中自动可用,但如果它有多个工作表,您仍然需要通过从工作表窗格中拖动工作表名称或表名称到画布中来指明您将使用哪个。
如果您需要使用多个工作表或表格,您需要在平台中使用连接或数据关系。我们将在以后的课程中进一步讨论这些功能。
要连接到数据库,请在起始页面的连接窗格中选择类型。这将打开一个新的对话框,您可以在其中输入必要的连接凭证,例如服务器名称、端口、数据库名称、用户名和密码。您还可以在第二个选项卡中指定一个将在连接到数据库时运行的初始 SQL 命令。您可以使用此命令设置会话期间可访问的临时表或设置自定义数据环境。完成后点击登录按钮以连接到数据库。
一旦成功连接到数据库或服务器,它将引导你到数据源页面。从表格部分选择你将用于可视化的表,并将其拖入画布以查看所选表的数据。
点击数据预览下方的“立即更新”按钮。
如果你需要使用不同的数据库,可以从左侧面板的数据库部分选择新的数据库。对于 SQL 数据库连接的额外功能是能够创建自定义 SQL 查询。当你确切知道所需的信息并理解如何编写 SQL 查询时,使用自定义 SQL 查询非常有用。只需点击表格部分下方的新建自定义 SQL 按钮。
你可以使用自定义 SQL 查询来垂直合并数据,应用于数据库连接,减少或重构你的数据,以及其他许多操作。在创建数据连接并选择要使用的表或工作表后,你现在可以前往 Tableau 工作表窗口开始可视化。
数据可视化神器Tebleau!无需编程,使用拖拽和点击就能制作出超精美的图表。1小时新手教程,从安装到做图一气呵成~<快速入门系列> - P8:8)Tableau的工作区介绍 - ShowMeAI - BV1T341117q7
Tableau工作区将是我们创建可视化和分析的主要界面。如我们在早期课程中讨论的Tableau工作区,它由多个卡片、架子和窗格组成,我们可以拖放字段以形成图表。首先,让我们看一下数据窗格,它保存我们的数据字段、集和参数。
窗格的顶部包含数据源名称。如果您创建了多个数据源,可以使用此视图在数据源之间切换,每个数据源将在数据窗格上有单独的数据字段列表。您还可以右键点击数据源名称以显示其他功能,例如提取数据。
编辑别名、过滤器和发布数据源。要查看数据而不返回数据源页面,您可以点击搜索框右侧的查看数据图标,过滤器应显示数据窗口。此窗口右上角的数字限制了视图中的行数。
您可以编辑指示的值以增加或减少显示的行数。行数限制的最大值为10000。除了行数限制外,您还可以通过使用显示别名功能的复选框来隐藏或显示别名。由于我们使用了三个通过数据关系链接的表。
窗口底部可见三个标签。每个标签代表一个单独的表或工作表,您可以通过点击显示的数据的标签来切换。您可以通过拖动列名将列移动到左侧或右侧。如果您希望复制或导出选定的行或预览中的所有数据,可以通过点击列名对数据进行排序。您可以选择行或列,并点击右上方的复制或导出所有按钮。现在,让我们看一下可用字段。您可以通过查看数据图标旁的下拉按钮,基于数据源或文件夹对字段进行分组。按数据源分组将根据各自的表或表单列出字段,而按文件夹分组将默认列出数据源中所有可用字段。
您可以通过右键点击一个字段并导航至文件夹来创建自己的文件夹以分组字段。创建文件夹。在这两种按视图分组中,维度在度量之前列出,其中用灰线分隔这两者。
您可以使用数据窗格创建层级,层级为数据字段创建逻辑级别。
例如,您可以通过使用层级创建国家、州、城市的地理层级,或按年份、月份、周的日期层级,您可以轻松深入到可视化中的不同数据级别。让我们尝试为此数据集创建一个两级层级。
在这里将一个字段拖到另一个字段上,我们将使用“自行车商店城市”和“自行车商店州”。将“自行车商店城市”拖入“自行车商店州”。
这创建了一个层级,你可以在弹出的窗口中命名。我们将这个新层级命名为“自行车商店位置”。输入名称后,它将在数据窗格中显示。首先列出的字段将是更高的层级。因此,我们的第一层设置为“州”,然后可以向下钻取到“城市”。
你可以在层级中上下拖动字段以改变它们的层级。要删除创建的层级,右键点击层级名称并点击“移除层级”。
接下来,让我们尝试创建一个新的计算字段。计算字段允许你从数据源中已有的数据创建新数据。当你创建计算字段时,实际上是在数据源中创建一个新字段或列。
这些值是由你控制的计算确定的成员。
例如,我们在数据集中没有可用字段来说明我们在自行车购买时向客户开具了多少发票。但我们有字段“价格”,即自行车的价格,以及“数量”,即客户订购的自行车数量,以创建一个计算字段。
点击数据窗格的下拉菜单,选择“创建计算字段”。这将打开一个新窗口,你可以在其中指明计算字段名称及其表达式。我们输入“开票金额”作为名称。然后输入计算,价格乘以数量。
将这两个字段相乘。完成计算后,请确保左下角的消息指示计算有效。然后点击“应用”或“确定”。新的计算字段现在已插入到数据窗格的度量列表中。当原始数据源中的字段名称已更新或移除,并且在图表中需要该字段时。
数据窗格中将看到一个红色的感叹号,与字段平行。要映射修正后的字段,请点击“写入”并选择“替换引用”。这将打开一个新窗口,其中列出了数据源中的所有字段。选择正确的字段并点击 O。这将把正确的字段映射到使用它的架构和属性上。现在。
让我们尝试从计算字段和我们创建的层级中创建图表。在数据窗格中,选择层级“自行车商店位置”。然后按住键盘上的控制键并选择计算字段“开票金额”。一旦选择了这两个字段,将它们拖入画布。
这将自动创建一个符号地图,指示美国每个自行车商店每个州的销售额。正如你所观察到的,Tableau自动从我们的数据集中州和城市字段生成了经度和纬度,并将其设置为行和列,以标记地图上的X和Y轴。
你还可以在火星卡上看到层次结构和开票金额如何影响可视化。当前状态被设置为细节,指示圆圈的位置。而开票金额则作为地图上的标签。让我们将其转换为热图。导航到“显示我”按钮并从列表中选择地图。
请注意,这改变了字段在标记卡上的应用方式。状态仍然在细节上,但开票金额现在设置在颜色卡上。这将地图从符号转换为热图,因为开票金额现在决定了每个状态的颜色饱和度。
如果你希望格式化标记,例如,你想将开票金额的渐变颜色更改为绿色阴影。点击颜色卡。这将打开一个新窗口,你可以设置其他属性以更改标记的外观。在这里,我们可以更改所用颜色的调色板,以及改变颜色的透明度,并添加边框和光环等额外效果。窗口中提供的每个选项将取决于卡片类型。因此大小。
标签和工具提示有自己独特的设置或属性进行自定义。我们将通过在课程后面创建不同图表来深入了解不同的标记卡。让我们通过双击地图上方的默认工作表标题来为此图表指明一个标题。这将打开编辑标题窗口,我们可以在其中输入新标题。将其设置为按状态销售。
从此窗口,我们还可以对标题应用文本格式。我们可以更改字体大小,使文本加粗、斜体或下划线,并更改字体颜色及其对齐方式。你还可以插入字段值,以使用插入按钮的下拉菜单使标题动态。点击应用以在画布上显示更改。获取额外的格式选项。
右键单击标题并点击格式标题。这将在标题面板中显示格式标题,你可以为标题和说明设置阴影和边框。除了标题,你还可以格式化可视化中大多数可见的内容。只需点击字段的药丸或图表的某个点。
然后右键单击并选择格式。这将打开格式面板,你可以设置整个工作表或仅特定字段的字体属性、对齐方式、阴影和边框。如果你希望隐藏工作区中的某些架子和面板,可以使用每个架子右上角的下拉菜单选择隐藏卡片。
这可在过滤器、标记、页面或列、行和图例架上使用。如果您希望取消隐藏卡片,请导航到工作表菜单,显示卡片,并选择您希望放回工作区的卡片。数据和分析的窗格不能被隐藏,但如果您单击右侧的箭头,它将被最小化。
除了将其从工作区移除外,您还可以更改界面中卡片的放置位置以移动卡片。拖放卡片到新位置。
最后,让我们看看构成视图的不同元素。确定视图每个部分的名称以便在创建和自定义自己的图表时容易格式化和区分它们非常重要。首先,让我们看看这个表的元素。模型和订单日期值被称为标题。
标题是在您将维度或离散字段放入行架或列架时创建的。标题显示每个字段在架上的成员名称。由于我们显示的是模型和订单日期的每个成员或值,它们都被分类为标题。字段名称。
模型和订单日期被称为标题的字段标签。您可以通过右键单击其在架上的图标并在字段标签菜单中取消选中“显示标题”来隐藏标题。您还可以通过右键单击标题或字段标签,并在菜单中选择“隐藏行或列的字段标签”来隐藏它。接下来,我们有单元格。单元格是您可以在 Tableau 中创建的任何表的基本组件。
它们由行和列的交点定义。26,60的值位于一个单元格内。一组单元格横向或纵向排列称为窗格。标题也是视图的元素之一。默认情况下,它设置为工作表名称,但您始终可以编辑它,以提供有关视图的更多上下文,就像我们之前在地图上所做的。如果您希望进一步解释视图,可以添加一个标题。
所有视图都可以有一个标题,该标题可以是自动生成的或手动创建的。要显示自动生成的标题,请在画布的空白处右键单击并在菜单中选择标题。这将显示标题卡片在视图下方。您可以双击标题卡片以编辑标题的格式和文本。接下来,我们有坐标轴。当您将度量或连续字段放入行或列架上时,将创建坐标轴。
在此折线图中,我们有一个水平和一个垂直坐标轴,因为我们有两个都是连续度量的字段。悬停在标记或数值上会显示工具提示。它们包含视图的附加数据详细信息。当您选择一个或多个点或标记时,工具提示还包括过滤标记、排除或仅保留的选项。
显示具有相同值的标记,创建组,创建集合,或显示基础数据。视图的最后一个元素是我们之前创建的地图上的图例。图例会自动创建,以显示地图上每种颜色的值,范围从100到38320,再到3400万的州销售额。
图例指示视图如何与数据编码。它可以使用颜色,也可以使用符号、大小和形状作为图例。Tableau工作区将是我们创建可视化和分析的主要界面。首先,让我们看一下数据窗格,其中包含我们的数据字段、集合和参数。
窗格顶部包含数据源名称。如果你创建了多个数据源,可以使用此视图在数据源之间切换。每个数据源将在数据平面上有一个单独的数据字段列表。你还可以右键单击数据源名称以显示其他功能,例如提取数据。
编辑别名和过滤器并发布数据源。现在,让我们尝试从已创建的计算字段和层级创建一个图表。在数据窗格中,选择层级“自行车商店位置”。然后按住键盘上的控制键并选择计算字段“开票金额”。
一旦选择了这两个字段,将它们拖到画布上。这将自动创建一个符号图,指示美国各州每个自行车商店的销售额。正如你所观察到的,Tableau自动从数据集中州和城市字段生成了经纬度,并将其设置为行和列,以标记地图上的X和Y轴。你还可以在Mars卡上看到层级和开票金额如何影响可视化。
状态目前设置为圆圈所在的细节,而开票金额设置为地图上的标签。让我们将其转换为热图。导航到“显示我”按钮并在列表中选择地图。注意,这改变了字段在标记卡上的应用方式。
状态仍然处于详细信息中,但开票金额现在设置为颜色卡。这将地图从组装符号转换为热图,因为开票金额现在决定了每个州的颜色饱和度。如果你想格式化标记,例如,想将开票金额的渐变颜色更改为绿色的色调。
点击颜色卡。这会打开一个新窗口,你可以设置其他属性以更改标记的外观。我们可以更改所使用的颜色调色板,并且可以改变颜色、不透明度,添加边框和光晕等额外效果。窗口中可用的每个选项将取决于卡片的类型和大小。
标签和工具提示有各自独特的设置或属性可供自定义。
更简单的绘图工具包Seaborn,一行代码实现Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P9:L9- Rug图 - ShowMeAI - BV1wZ4y1S7Jc
好的,我们来创建一个rug图,具体来说,我们将再次查看小费数据集,尤其是小费金额。基本上,rug图会将数据框中的单列数据点绘制为棍棒。因此,您会在这个轴的底部看到这些不同的棍棒。在rug图中,您会看到数量较多的地方会有更多密集的线条,这有点像直方图在值较高的地方更高,而rug图则在值更常见的地方更密集。好的,rug图并不常用,但我在这里玩弄这些图形,我现在想要专注于样式,以便我们可以制作。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P1:L1- 介绍 - ShowMeAI - BV1wZ4y1S7Jc
大家好,N,欢迎来到我的 Seaborn 视频教程系列,在这里你将学到几乎所有你想知道的关于 Seaborn 的内容,所有内容都在一个视频中,基本上 Seaborn 是一个建立在 Matplotlib 之上的数据可视化库,如果你不知道 Matplotlib 是什么,请查看视频下方的描述。
我将涵盖所有你可能想要了解的内容,这是我数据科学和机器学习教程的一部分。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P10:L10- 绘图风格设置 - ShowMeAI - BV1wZ4y1S7Jc
我们的图看起来更漂亮了。好吧,我在这里想做的第一件事是向你展示如何为你的轴和网格设置样式,方法是输入SNS并设置样式,假设我们选择白色,然后我会在这里创建一个联合图,然后我会改变它的样式。所以我会说联合图,使用我们的车祸数据,因此我们会有超速,我会做酒精使用。
当然,我们的数据将来自我们的事故数据框,我将为此做一个回归图,所以你可以看到我们的图,我们会在这里稍微调整一下样式,以便你可以看到,比如说我想改变这个图的大小,为此我可以说图和图形,我们使用你之前在matte plot live中看到的fig大小,你可以看到我们在图中稍微改变了大小,另外你也可以展示一些其他不同的样式,你也可以选择白色,你还可以访问黑暗。
网格,你可以看到变化。看起来挺不错的,还有其他选项。我会给你展示所有的选项。你还会有白色网格。
所以就是这样。还有你会有黑暗。我们把黑暗放进这里。然后就是黑暗。看起来也挺不错的。然后你有刻度。这就是我所有不同的选项。根据你的数据和你使用的调色板。
你会使用不同的网格,有些看起来不错,有些则可能不太好。所以这就是刻度。我暂时就停在刻度这里。有一点是你的标签和文本,所有东西都有点难以看清。那么我们如何改变我们的标签、线条和其他不同元素,以最好地适应并美观地展示我们的数据呢。
好吧,为此,你去设置上下文,这里有三个选项。你可以选择纸张。我也要改变字体。
所以我要说字体缩放为E01。4,你可以看到字体发生了变化,依此类推。然后我将展示其他不同的选项。你可以选择纸张样式,可以选择演讲样式,你可以看到那样更容易查看,此外你还可以选择海报样式,这样会超级清晰。你可以看到它非常大,这就像你在海报上使用的,而演讲样式适合于演示,而纸张样式则适用于Jupyter Notebook。好的。
所以我们就保持纸张样式。
看看效果。 我觉得这很易读。当然,如果你想精确调整,可以更改字体大小。还有一点是,有时候这些不同的轴,这些脊柱有点突兀,可能对你的数据没有太大帮助。好吧。
你还可以决定哪些脊柱打开,哪些关闭,调用D脊柱。假设你想要。
它向左移动的等式是。错了,意外地按了一个T而不是E,你可以看到我们的左轴在那儿。我们把这个设置为真。现在你看到它缺失了,好吧,假设我们也想出于某种原因去掉这个底部的部分,你也可以这样说,底部为真,现在我们没有底部,依此类推。
正如你所看到的,他们默认左侧发生的事情也会发生在右侧,底部发生的事情也会发生在顶部。当然,你也可以决定是否要显示右侧和顶部的脊柱,或者选择不使用它们,从而获得这样的布局。好吧,有一些不同的样式选项,随着我们继续,我将深入探讨其他不同的样式选项,以及通过matplotlib提供的色彩映射讨论不同的着色选项,但现在我想谈谈。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P13:L13- 箱形图 - ShowMeAI - BV1wZ4y1S7Jc
现在,箱形图将允许你比较不同的变量,它会显示数据的四分位数。所以我将打印一个,然后解释它所展示的内容。我非常喜欢箱形图。假设天数,我们要在这里查看男性和女性在多个不同天的总账单变化。所以我将说 Y 是总账单,当然数据将来自我们的提示数据框,这也是你第一次看到 hue 在这里,它将引用性别。
男性或女性,这是我们的箱形图。正如我所说,箱子将显示我们数据的四分位数,你可以在这里看到图例等等。现在,这条横跨中间的线是中位数,箱子将延伸一个标准差,这就是箱子所代表的内容。这些点被称为胡须,它们将延伸到所有其他数据,除了我们的标准差范围内的点,另外那些被认为是异常值的点。这些点被认为是异常值。基本上,hue 为我们提供了一种额外的方式来添加另一个类别。所以我们在查看天数和总账单时,加入性别这个 hue,也将允许我们创建。
对于每一天的男性和女性的多个箱形图,这样我们可以进行比较。我们可以看到,男性在星期五的支出往往高于星期六,而女性的支出则相对较高。如果你想移动这个图例,因为有时这些图例会挡住视线,比如说你想移动它,你可以去绘图和图例位置,这通常几乎总是有效的,如果你只输入位置 0,它会保持在同一位置。我将在几秒钟后更详细地讲解图例。
但基本上它允许你重新定位图例,以便它不覆盖你的数据,稍后我将更详细地讲解我们的分类绘图选项!
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P15:L15- 带状图 - ShowMeAI - BV1wZ4y1S7Jc
讨论条形图。好的,我们在这里可以做的另一件事是改变图形大小,使其更大。我们再次使用 matplotlib,所以假设八和五的尺寸相当大,然后我们放入这个条形图,看看效果如何。要创建一个,你只需调用 strip plot,条形图将绘制一个散点图,表示所有不同的数据点,其中一个变量是分类的,通常用于显示与箱线图不同的观察结果,该箱线图代表平均分布。所以我们设定 X 为 day。
总和 y 等于总账单。而且数据将成为我们的提示。
数据框出错了。这是图形,你可以看到条形图的工作方式,我们可以加入一个名为 jitter 的属性,它将使我们的数据点分散开来,而不会堆叠在一起,只需设置 jitter 为 true,你就会看到它们稍微分开。假设我们想将数据进一步分为男性和女性,我们再次使用 H。
现在你可以看到男性和女性之间的差异,此外,你可以使用 Dodge,这将完全分离男性和女性的数据,因此每个都有自己的条形图。好的,这就是带有许多酷功能的条形图。现在我想谈谈另一种图形,它结合了多种其他图形的能力,称为。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P16:L16- 群图 - ShowMeAI - BV1wZ4y1S7Jc
群集图,好的,我想在这里做的是创建一个小提琴图,然后在它上面叠加一个群集图。所以我会说 x 等于 day,y 等于 total bill,数据将来自我们的 tips 数据框。正如我所说,群集图有点像条形图,但点会被调整,以便它们不会重叠,创建时看起来就像小提琴图和条形图的结合。我将把所有这些数据从这里复制出来并运行,你可以看到,因为它对这里所有不同点使用了完全相同的颜色,但你可以轻松修复,只需将相同颜色设置为白色,现在你可以看到里面所有不同的图形,好的。
所以有点酷,停。
如果你只想像这样单独查看它。 显然你不能让颜色是白色,你可以清楚地看到它的样子。 好的,所以有很多很多不同的绘图选项可供选择。 现在我想谈谈调色板。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P21:L21- Facet网格 - ShowMeAI - BV1wZ4y1S7Jc
Facet网格。那么,使用facet grid,你将能够在一个网格中打印多个图,其中你可以定义列和行。假设我想要获取吸烟者和非吸烟者的直方图,基于午餐和晚餐的总账单,我将使用tips数据框来完成这个。
我在这里放入FG以表示facet grid。然后调用sns.FacetGrid。我将使用tips数据框,当然,列将由时间表示,行将由吸烟者表示。
你可以看到我们在这里创建了一个类似网格的系统。我现在想做的是为我的直方图传入属性。所以我将说使用tips、FG、map,并绘制一个直方图。基于总账单。我将把它放在八个桶或箱中。
你可以看到它自动为我们生成了这些直方图,真是不错的东西。你也可以进来,比如说你想创建一个散点图,那将是总账单,我们来试试tips。
比较这两个图,这个是小费,不是小费,好的,你可以看到我们创建了一个散点图。我们还能够做的另一件事是,去掉这个,并说我们想为不同的颜色分配变量,可以这样做。所以我们仍然使用tips数据框,我将设置列B为时间,但我将把h改为吸烟者,你还可以改变高度,然后我们将高度改为4,并且可以改变一个叫做aspect的东西,这将基于高度来决定宽度,所以我将把它设为1,让它们相等,让我们把它稍微放大一点,设为1。
然后我们可以下来,看看tips FG。
让我们尝试map,这里我们就用散点图,因为这样做一些疯狂的事情最有意义。所以我将把它设置为总账单和小费。
你可以看到我们的两个散点图。我们可以添加一些不同的选项,比如说我想让晚餐在午餐之前,出于某种未知原因。我可以这样做。所以我将说列顺序等于晚餐。
还有午餐,让我们去更改我们的调色板。所以我们将说调色板等于。我将使用一个叫set one的调色板。我还将更改我们散点图中点的边缘颜色为白色。你可以看到我们所做的更改。好吧,真是不错的东西。
现在让我们展示一些其他选项,因为这个家伙有很多选项。假设我们想更改大小和线宽,并为标记分配不同的颜色,使用不同的标记。这些点称为标记。我可以更改所有这些。我要做的是创建一个字典。
这将代表我们标记的大小。然后我将把线宽定义为0.5,边缘颜色定义为白色。接着我会来。
facet grid将等于SN S facet grid tip stat frame。让我们的列等于性别,我们的Hue变化将基于这个人是否吸烟。让我们将每个的高度定义为4,宽高比为1.3。
让我们继续添加各种疯狂的东西。假设我们想更改我们的H顺序,让吸烟者是“是”,非吸烟者是“否”。好的,这就是它所指的。然后我们还可以通过说h KWs等于字典来更改我们的标记。
我们将定义我们的标记符号,像这样用这个尖头符号做一个向上的三角形。然后我们用一个V放在里面,做一个向下的三角形。好的,我在试图弄清楚所有不同的参数,然后我们将为标记分配一个字典形式的数据。
所以我要说tips facet grid。
映射,并根据总账单、提示金额来创建我们的散点图,然后传入我们在标记方面制作的其他数据,你可以看到我们刚才做的所有疯狂的事情。好的,如果你想看到几乎每一个可想象的选项,最后我想在facet grid上展示一些有趣的东西,我将去获取不同的数据。这是出席数据,所以SS dot load。
数据集。以及注意力。这是数据框,将提供不同学生在测试阶段能够提供的注意力水平下所获得的分数,这些有点奇怪的东西。我将去S和S,我将再次创建一个面格网,我想在这里做的是把每个人放在他们自己的图中。
每行5个主题,并根据他们在测试阶段能够集中注意力的程度绘制每个主题的分数。好吧,这有点像是玩弄数据的乐趣。所以列将是主题。我将说我每行只想要五个主题,所以列换行5,我将定义高度为1.5。然后我将做一个常规的传统绘图。所以我将说Tt FG图,并做一个常规绘图。
不。🤢,我们会有解决方案。然后是分数,我们还可以定义自定义标记。因此,我们会说在这种情况下我们的自定义标记是一个非常简单的点。哦,我在列换行而不是列包裹和分数中输入了。这应该是分数,运行它,你可以看到所有正在测试的个别主题或学生。
他们的分数以及他们的分数如何根据他们能集中多少注意力而变化。好吧,有这么多不同的方式来看待和玩弄数据。为了结束这个教程,我想谈谈你将一直使用的东西,那就是。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P3:L3- 导入数据和数据集 - ShowMeAI - BV1wZ4y1S7Jc
关于加载数据,你将能够进入并加载 CSV 文件以及通过使用 pandas 提供的无数其他不同文件类型。这就是我在这里使用的,因此我可以进入计算机销售,这是我以前使用过的 CSV 文件,你可以看到它的样子,没问题,但在这个教程中,我不会这样做,为了让每个人都能更容易,我主要将使用 seaborn 内置的数据集,你可以通过输入 git data set names 来查看内置的内容,那里你可以看到这些数据集的名称。只需忽略这个,它是一个错误,有时在我们调用这些数据集时会出现,如果我们没有正确使用它,它不知道我们在使用什么类型的数据,只需不担心它。所以有各种各样的内置数据集,我将在这个教程系列中使用至少三个。
因此,你可能会问自己,如何加载这些数据集呢?首先,我将使用一个交通事故数据集,你只需输入 load data set,然后键入它的名称,即 car crashes,你可以看到它的样子在这里。所以你可以看到这些是交通事故的总数,这些是州。阿拉巴马州、阿拉斯加州、亚利桑那州、阿肯色州、加利福尼亚州。
他们分析的总事故数,包括人们是否超速、是否饮酒、是否没有分心,是否没有以前的事故以及保险费用和保险损失。好吧,这就是我们将要分析的内容,并且在视频下面的描述中,你将找到一个 Jupyter notebook。
我在这里做的所有事情,除了我要包含。
有大量的注释来帮助你,所以这是一个巨大的备忘单,当然,这都是免费的,因为。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P4:L4- 分布图 - ShowMeAI - BV1wZ4y1S7Jc
在 GiHub 好的,现在我想谈谈你可以使用的不同分布图,第一个我们要看的图叫做分布图,基本上它们提供了一种查看单变量分布的方法,你可能会问什么是单变量分布?它只是为一个变量提供分布,获取它们的方法是说 S 和 S。
分布图,当然你可以通过按 shift 和 tab 找到更多关于这个具体命令的信息,它会向你展示所有关于可用属性的不同信息,我将覆盖其中一些内容,而一些我不会,我会尝试在提供你会经常使用的内容与深入每个你不会用的内容之间找到一个平衡点。好吧,假设我们对没有分心的事故感兴趣,我们可以在这里看到一张图,这条线或者说这是一个直方图图,这就是它的名称,而这个图是所谓的核密度估计。
如果你进来这里不想要那个,你可以直接说 KdeE 等于 false,看看它现在消失了,基本上它只是提供你数据集总结果的估计,没什么复杂的,还有我们能在这里做些什么呢?
我们还可以定义区间,所以我们可以说区间等于 $25,看看这如何改变我们的数据,基本上区间就像一个桶,用于将数据分隔成不同的区间。例如,如果你在做利润方面的分析,可以说把10到20之间的所有利润放在一个桶或区间里,这只是决定你在数据中会看到多少条这样的柱状图,基本上这就是分布。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P5:L5- 联合图 - ShowMeAI - BV1wZ4y1S7Jc
现在我们也进入了分布图的领域。我们有叫做联合图的东西,联合图将用于比较两个分布,默认绘制散点图,所以我们可以使用联合图,假设我想在 X 轴上接收与人员是否超速相关的数据。
并且在 Y 轴上与人员是否醉酒或酒后驾驶相关。
你可以说数据是相等的,我们正在使用碰撞数据框,假设我们想生成一条回归线。我们可以设置类型为回归,然后你会看到它在这个地方绘制了所有这些疯狂的东西。
你还可以通过进入类型区域并设置 KdeE 来创建这样的 KdeE 图,看看我们可以在这里制作的各种酷炫图表,KdeE 再次指的是核密度估计,正如我之前所说的。
只是估计数据的分布,你也可以创建一个六边形图。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P6:L6- 六边形分布图 - ShowMeAI - BV1wZ4y1S7Jc
在分布上,只需像这样输入十六进制。你可以看到这些数据是如何分布的,以及大多数人在饮酒和超速之间的快乐点,任何时候他们发生事故时。所以你可以用这个做很多非常酷的事情。
更简单的绘图工具包 Seaborn,一行代码做到 Python 可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P8:L8- Pair对图 - ShowMeAI - BV1wZ4y1S7Jc
现在我想再次谈谈配对图,仍然是在分布图区域,基本上配对图将绘制整个数据框数值之间的关系,所以让我们创建一个,可以说配对图和Cash
数据框,并查看所有信息,所以有很多信息,您可以看到左侧有我们的总数。
我们有超速数据,我们还将有关于酒精的数据,我们将比较这些列和行,以及这些不同数据如何相互影响,以生成对角线上的直方图,以及其他地方的散点图。
但我们可以在这里更改很多内容,让我们加载另一部分数据。假设我们想获取提示数据框,再次使用load
加载这新数据。
数据集和提示。只是为了向您展示我们这里的提示数据框中有什么。基本上,我们将会有总账单,提示金额,谁给了$1的小费。我不知道是否是男性或女性,是否吸烟,购买发生的日期,以及这是晚餐还是午餐,以及派对的规模,我相信这就是所指的内容。所以,为了处理一些不同的数据,并混合一下,我们来创建另一个图表。所以我将去掉这个,打算使用SNS.pairplot
,我们将使用提示数据框,并且您可以传入分类数据,图表将根据这些分类数据进行着色。所以假设我们这次想要获取与性别相关的数据。
您还可以进来,我会很快详细介绍调色板的样式。这是一个名为blues的matplotlib调色板,我在之前的教程中使用过,您现在可以看到所有内容都使用蓝色样式,您还可以看到浅色点代表男性,深色点代表女性,您可以看到我们能够制作的图表,基本上是总账单、提示和规模,总账单、提示和规模是我们在这里提取的信息,我会在稍后讨论样式,所以我们可以更改这些字体大小等等,当我们进入网格时,我会向您展示如何制作这些图表,并在我们的图表网格的顶部、对角线和底部放置不同的图形,但现在我想谈谈rug。
更简单的绘图工具包Seaborn,一行代码做到Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P11:L11- 条形图 - ShowMeAI - BV1wZ4y1S7Jc
关于分类绘图 现在有了分类图。我们将重点关注使用分类数据的分布,并参考其中的一些数值数据,首先我要谈论的是我们的条形图。因此,我将使用SNS和条形图,假设我们要分析有关不同男性和女性的小费信息,所以我们会说x等于性别,而y等于总账单,所以总账单,当然我们还要说明我们将从哪里获取数据,这将来自小费数据框,在这里你可以看到与我们的小费数据中的总账单相关的性别差异,而这里的小条形图正是对此的引用。
男性与总账单金额之间的方差等,默认情况下。这些数据将基于均值进行聚合,但你可以修改它。因此,估算器是你将如何更改它,你也可以基于中位数进行计算,并且能够使用各种numpy公式。因此,这些数据是基于中位数的,你也将能够基于标准差进行计算。
以及协方差与COV。你也可以创建自己的函数并将其插入估算器,以精确更改数据的聚合方式。这是条形图的粗略估计。
更简单的绘图工具包Seaborn,一行代码做到Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P12:L12-计数图 - ShowMeAI - BV1wZ4y1S7Jc
现在我想谈谈计数图,计数图有点像条形图,但估算器只是简单地计算出现的次数。我们可以称之为计数图,并在X轴上,比如说我们想找出数据框中男性和女性的数量,你可以看到男性总数与女性总数的比较,正如我所说的那样。
你可以在这个函数后点击Shift和Tab查看所有额外选项。这里有Hue,我们之前已经讨论过,可以改变顺序,改变我们正在使用的颜色、调色板和饱和度,我将谈论Dodge以及其他不同选项,随着下面内容的深入,你还可以阅读所有不同可用的内容和所有不同参数的更多细节。
好的,这就是计数图。现在我想谈谈箱形图。
更简单的绘图工具包Seaborn,一行代码做到Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P17:L17- 调色板 - ShowMeAI - BV1wZ4y1S7Jc
这样可以让我们的图表看起来更好,所以我要改变图表的大小,并且在这里设置我的网格样式,使用更深的颜色,我会把它变得更大,呈现出一种演示的样子,通过调用talk,现在我想要做的是创建一个条形图,让我们坚持我们习惯的样式。
这是我们的小费数据和总账单。我们的数据来自小费数据框,让我们使用h等于性别。在这里你可以看到它最终会呈现的样子。现在我们使用的这些不同颜色,有时候看起来很棒,有时候则不然。如果你想改变它们,你可以设置调色板。
然后你可以为自己找到不同的颜色选项。通过访问matplotlib,特别寻找颜色映射。如果你输入matplotlib颜色映射,它会带你到这个页面。你可以看到很多,这些都是可供你使用的不同颜色映射的示例。
如果你向下滚动,你会在这里看到它们的一个例子。你会得到的颜色。那么假设我想得到像magma这样的颜色。我可以在这里输入。
把它设为magma并运行,你可以看看这样是否更好,你也可以尝试其他不同的样式,比如说你也可以输入purple blue green。让我们试试AFM hot,好吧,让我们试试AFM hot,我也不知道。
我只是随机选择了一些。
这看起来很不错,当然我们可以把头发的颜色改成白色。等等。好了,有一些不同的方法可以改变你的图表颜色,正如我之前所说,有时候这个图例会出现在错误的位置。嗯,很经常你可以通过简单地设置图例的位置为0来解决这个问题,它就会保持在原位。所以如果你想要其他选项来移动它,你可以尝试改变图形的大小,现在它不会遮挡任何数据。
至少这是你可用的另一个选项,或者如果你不喜欢最佳选项,也就是零会给你的,你可以尝试把它放在右上角,方法是输入值一。所以让我们在里面放一个一,现在它在右上角。如果你也不喜欢这样,你可以尝试。
或者左侧,已经是原来的位置,如果有两个的话,可以放在左下角三个位置,所以我们可以试试。而且这仍然有点阻碍,我认为左上角绝对是最佳选项,这是最好的选择。如果你想了解所有其他可用选项。
你可以去 Macplotlib,专门查找 pi plot 图例,它会显示所有其他不同的选项,你还可以选择具体放置,选项包括左上、右上、左下、右下等等,这里是所有这些不同位置的代码数字,你还可以通过使用元组将其特定放在 XY 轴上。所以有很多不同的方法可以通过改变调色板和位置来样式化图例等等。接下来我想讨论一种完全不同的图表,称为矩阵图。
更简单的绘图工具包Seaborn,一行代码做到Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P19:L19- 聚合地图 - ShowMeAI - BV1wZ4y1S7Jc
地图好的,对于聚类图,我想使用与鸢尾花和花萼长度等相关的数据。所以我将去使用它,这就是我们加载数据的方式,基本上就是一个聚类图。我们来实际创建一个,然后我将准确解释它向你展示的内容,所以我们要像这样进行聚类图,然后传入鸢尾花,但首先,我需要定义我希望返回给我的值。也许我应该先给你看看,来看看它是什么样的,好吧,这里是鸢尾花。你可以看到sL,这些基本上是不同花瓣的长度和宽度,基本上是鸢尾花上的花瓣。所以我想要根据不同的鸢尾花物种来划分数据,然后就绘制这个数据,我需要说物种等于鸢尾花。
Pop物种。好的,这将说明我们希望根据不同物种返回的值。然后我可以说S和S。聚类图。抱歉,我不是花卉专家。所以我真的不知道这些不同的家伙之间的区别。好的,这就是我们创建的内容,看起来有点复杂。
但我将尝试准确解释这个聚类图中发生的事情。现在这就是我们称之为分层聚类热图的东西,它在这里所做的是计算点之间的距离,然后将最近的点连接在一起,这将继续进行下一个最近的点,并且将比较我们的热图的列和行。所以我们来看看你可能已经习惯的另一组数据。这基本上就是在尝试聚类相似的数据类型,我们的数据点。我是说,所以我们来使用我们的航班数据来展示一些你已经知道的东西。
看了一点点,所以我将去做SN S和聚类图,航班和CM等于蓝色。而标准化尺度的作用是将数据归一化,以专注于聚类。这将有点混淆日期,正如你所说的,你必须将其设为1。好了,你可以看到我们的航班数据,你也可以看到我们确实集中并聚类了7月和8月的数据,你还可以看到下面的年份不再按顺序排列。所以这就是热图之间的区别。
热力图不会尝试重新定位数据以寻找数据集群,而是会在现有数据的基础上工作,而集群图则会紧密适应并聚集数据,以便你可以看到正在形成的非常具体的模式,这些数据是关于人们乘坐飞机的航班数据,非常有趣,接下来我将讨论配对网格。
是的。
更简单的绘图工具包Seaborn,一行代码做到Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P2:L2- 设置 - ShowMeAI - BV1wZ4y1S7Jc
现在这是Jupiter notebooks,在这里我会完成所有的内容,你可以看到我将在这个教程中涵盖的所有内容,视频下方也会有一个目录,供你跳转到任何你可能感兴趣的部分。现在,在Mattplotlib中,你通常需要写多行代码来创建一个图表,但正如你将看到的,Seaborn会根据你的需求做出假设,这通常会使你用一行代码获得完全相同的图表,因此它真的很酷。你可以通过使用Anaconda环境标签来安装它,或者在终端中输入这些命令,既可以说pip install seaborn
,也可以说conda install seaborn
,所以这两种方式都会让一切正常运行。接下来我会做什么。
首先,设置一切需要导入nuy,我还会导入pandas和Madplotlib,当然还要导入seaborn。如果不这样做,做seaborn教程会很困难,我还会做其他一些事情。
我将设置我的图表直接显示在Jupiter notebook中,然后添加其他命令以实现自动重载。
你不需要做这些,但这可能会对你有帮助。好了,一切设置好后,我只需按控制和回车来加载所有内容。
更简单的绘图工具包Seaborn,一行代码做到Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P20:L20- Pair对网格 - ShowMeAI - BV1wZ4y1S7Jc
好的,我们在这里想做什么?基本上我之前在这里提到过成对图,成对图的工作方式是你插入数据,它会给你一堆不同的图,但当你想要更具体地控制图和数据的显示位置时,那就是成对网格的用武之地。
所以我想在这里做的是,首先我将再次使用Iis,我想基于这个鸢尾花数据创建一个空的网格系统,我说成对网格和Iis。
h将等于物种,因此我们将根据不同的鸢尾花数据框中的物种进行上色,然后我想在上、下和对角线上放置一个散点图。那么我该怎么做呢?我使用Iis G map。
然后我像这样调用绘图和散点图,我还必须加载我们的鸢尾花数据,并且我输入的是app而不是map,好的,所以这就是成对网格的样子,你可以看到到处都是散点图,你也可以看到所有的数据会在行和列中对齐,这些数据的交互和相关性将在我们的图中基本呈现出来,但如果我们决定想要在不同的地方放置散点图,会发生什么呢?
在上、下以及对角线上绘制图,我将说I G map绘制散点图,假设我想在对角线上放置一个直方图,我可以说I G map和对角线和绘制直方图,现在你可以看到我们有一个直方图,但我们也有其他的散点图仍然显示在这里,所以让我们去掉散点图,假设我们想让散点图在对角线的上部和下部显示。那么我们说I G和map在对角线外部绘制我们的散点图,现在我们得到了不被散点图遮挡的直方图,并且我们在成对网格的上部和下部得到了散点图。
但是我们想说我们要去放置不同的散点图。
上面的东西和下面的另一种不同的图。好吧,我们可以直接过来。让我们复制这个,我不需要再打一次。所以我想说在上面我想使用。
这是一个散点图,下面我想输入一个Kde图。实际上这是seaborn的一部分。所以这是Kde图,你可以看到它正好为我们完成了这个。如果你想查看可用的不同选项,当然可以按Shift和Tab。按这个加号按钮,你可以查看与该函数相关的所有不同选项。
太好了,这真是很酷的东西。你可以制作非常,非常自定义且看起来很棒的图表。我们可以在这里定义X和Y的变量,用于我们的自定义网格,方法是输入Iris。
G等于SN S。Para grid。Iris?我将说色调将基于物种,然后X变量将基于萼片长度。我想我发音正确,但我对花朵不太了解,所以如果我说错了,请原谅。然后是萼片宽度,Y变量将等于……让我们复制这个,然后把它改为pal,再把它改为pal,然后我们可以说我们想绘制一个散点图,接下来去掉这一部分,然后我们也可以在这里添加一个图例,你可以看到我们能够创建我们的自定义图表,太好了。
这真是非常酷的东西。接下来我想谈谈另一个网格。
更简单的绘图工具包Seaborn,一行代码即可实现Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P14:L14- 小提琴图 - ShowMeAI - BV1wZ4y1S7Jc
对我们来说,另一个与箱线图非常相似的图是所谓的“小提琴图”,你可以通过搜索小提琴图来创建一个,基本上它是箱线图和KdeE图的结合。假设我们想要的信息几乎完全相同,我们将获取日期信息和总构建信息,并从我们的提示数据框中提取这些数据,同时也使用H,以便我们可以获得男性和女性的数据,这就是小提琴图的样子。箱线图对应数据点,而小提琴图使用数据点的KdeE估计来创建这些图形。我们还可以在这里添加一个名为split的选项并将其设置为true。
像这样,分割将允许你比较不同类别之间的关系。因此非常有用。正如我所说,这取决于你的数据类型,以帮助你找到最适合你的图表。接下来,我想谈谈条形图。然后我将更深入地讨论一些样式选项。
有不同的调色板可供选择,但首先我们要。
更简单的绘图工具包Seaborn,一行代码实现Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P18:L18- 热力图 - ShowMeAI - BV1wZ4y1S7Jc
好的,首先我们要讨论的第一个矩阵图是热力图。让我们来进行一些样式设置。我将设定我的图形大小为8和6,并且我还将更改我的网格背景上下文。
我将把这个改为纸张,哎呀,要用引号把它括起来。我将使用1.4的字体缩放,这通常也有效,如果不行我们再改。好的,要用数据创建热力图,你基本上需要以矩阵格式设置变量。这样做。
让我来具体展示一下我的意思。所以我们有我们的事故。
数据框,好的,就这样。我们需要做的就是创建一个热力图,我们必须让在我们的列上的数据与这些列也作为行对齐,而不是像这样用索引,有两种主要的方法来做到这一点,我将向你展示这两种方法。
两种可用的选项。好的,假设事故,这将是矩阵。你可以做的一种方法是获取事故数据框,并调用相关性函数,基本上相关性将告诉你变量对结果的影响程度,这将创建那个,我可以准确地向你展示它的样子,所以现在你可以看到你的列和行都在这里对齐,而不是使用那些不同的索引。
这正是用于创建热力图的方法,你可以查看这个数据,举个例子,在我们的数据集中,没有之前的事故与事故之间有很强的相关性,而像保险费这样的因素则没有。你还可以看到,酒精使用与某人发生事故也有很强的相关性,但我们在这里讨论热力图并不是只看基本数字,所以让我们创建一个热力图,我将说热力图,并且我将使用我们的事故矩阵。
我将添加注释,这将在热图每个部分的中心显示数字。如果你在mapplotlib中创建过热图,你会知道使用Seaborn有多么简单,你可以看到,这就是在mapplotlib中创建热图的快速方式,大约四五六行代码。这是一个完整的代码,并且这是一个来自我之前展示的mapplotlib页面的颜色映射,你可以使用任何不同的颜色映射,你可以准确看到我们的热图与之对齐,基本上是同样的数据,只是看起来更好。因此,让我们展示另一种创建矩阵的方法,所以让我们继续,我将保持完全不变,你也可以通过使用称为透视表的方式来创建矩阵。
我为什么不直接使用完全不同的数据呢,我要去获取一些航班数据。我将其称为flights。然后是SNS。并加载。此次使用的数据集是内置的,称为flights,你可以看到,基本上它是基于年份和月份的飞行人数。好吧,你也可以看到这里有索引,除非我们将列中的内容放入行中并展示它们之间的关联,否则我们无法创建热图。所以我们要做的是创建一个透视表。我将调用flights.dot pivot table,这只是另一种将列放入行并关联所有数据的方法。这就是它的含义,所以我将说我想创建一个以月份为索引的矩阵,我希望我的列等于年份,而我想要的数据值是乘客数量。你可以准确看到这些数据来自哪里,所有三个数据部分都会被使用。
如果我运行这个,你会看到我们的月份在左侧,而年份在顶部,特定年份和月份的乘客数量就是你看到的实际数据。好吧,这非常非常有用。我现在想做的是实际创建这个热图。我将说热图使用我们的flights数据,我将使用我的颜色映射。
这是我比较喜欢的蓝色图,你也可以在这里放入白线来分隔数据。不过我先给你展示一下它的样子,哦,航班。这将只是S和S,我们不需要这个,好吧。所以你可以看到这是基于我们航班数据的新热图,但你也可以在数据之间放置线条,如果这样更方便操作,但除非你定义线宽,否则它是不会显示的。
让我们试试只使用一条线,你可以看到它是如何被分开的,而且你也会发现,大多数航班发生在七月和八月,并且随着时间的推移,自1949年至1960年,更多的人开始飞行。好吧,这真是很酷的信息,现在我想谈谈聚类。
更简单的绘图工具包Seaborn,一行代码实现Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P22:L22- 回归图 - ShowMeAI - BV1wZ4y1S7Jc
所以我会再次使用我的小费数据。让我们去看看这些数据的前五个,只是提醒你我们将使用什么类型的数据。好的,所以我想做的是,我将定义图形的大小,图形大小将等于8乘6,我会将其设置为纸张格式。
所以设置。
上下文。为了纸张,我会将我的字体缩放到1.4,以使其看起来不错,并绘制一个回归图,我在之前的教程中多次提到过,你可以像这样使用LM图。我想研究总账单是否会影响小费金额,当然会,这就是我们这么做的原因,所以我将输入总账单金额,对于Y,我们将输入小费金额,Hugh将用于显示男性和女性之间的分隔。
所以我们可以说hug是与性相关的,数据当然会来自我的小费数据框,T数据框,我会再次使用自定义标记,来展示你可以做到的。我要用一个圆圈。然后,我会,确保把它放在引号里。
圆圈。然后对于女性,我将使用大写三角形,然后我还会通过将scatter underscore KWS设置为和我将定义我的标记的大小,让它为100。
看看那是什么样子。我还会定义对齐宽度,让我们把它设为0或0.5。我还会改变边缘颜色。让我们把它设为白色,如果我运行它,你可以看到我们的高度自定义散点图,你可以在这里应用我们在这个教程中学到的所有其他内容,玩弄并让它看起来像你认为的最佳样子。
最后,我会在这里做另一个回归图。但是你实际上可以将数据分成不同的列。因此,我将使用SNS Lm图,将其设为总账单和小费金额。所以我们在这里做相同的分析,所以这里是小费,列我还会分析六,你也可以将其分开到一天中的时间。
所以我会基于这个进行行处理。
然后,最后,把你正在使用的数据框放入,你可以看到所有这些数据是如何发挥作用的,以及它如何影响我们的回归分析,它提供了多种不同的方式来查看多个数据点。如果你不喜欢这个样子,有时你可以调整上下文。
所以让我们把这个放进去,就这样。然后将其改为海报格式。哦,那非常,非常大。所以这不太合适。我们还是坚持使用纸张格式,这样比较容易阅读。当然,你也可以来调整高度和宽度等。
现在让我们来调整一下高度,首先,我们把这个移动到这里,留出很多空间。我们将高度定义为类似于8,宽高比设定为0.6,完成了。所以我们有不同的方法来扩展我们的数据,查看、分析并呈现给观众。这是对Seaborn的所有不同功能的一个相当全面的概述,更多的可视化教程即将推出,像往常一样,请在下面留下你的问题和评论,否则,下次再见。
更简单的绘图工具包Seaborn,一行代码实现Python可视化!1小时教程,学会20种常用图表绘制~<实战教程系列> - P7:L7-KDE图 - ShowMeAI - BV1wZ4y1S7Jc
联合图,我之前谈到过KDE图,如果你想完全自己生成一个,你可以简单地说KDE图并崩溃一个框架,这样我们就可以看看关于酒精使用的崩溃情况,你可以看到,接下来我会更深入地讲解KDE图,因为它们常常涉及到其他图表。
用 Pandas 进行数据处理与分析!真实数据&实时讲解,学完就能上手做数据分析了!<实战教程系列> - P10:10)特殊格式 - 日期和时间序列数据处理 - ShowMeAI - BV1M64y187bz
大家好,最近怎么样?在这个视频中,我们将学习如何在 Pandas 中处理日期和时间序列数据。现在,我们可以用日期时间数据做很多有趣的事情,我们将在这里学习这些内容。所以我们将学习如何正确读取数据,以便能够使用日期时间功能。
我们还将看到如何按日期时间进行筛选,如何通过重新采样时间框架对日期进行分组,我们还会看看如何使用我们的时间序列数据进行一些简单的绘图。现在,我想提到的是,我们确实有一个赞助商为这个系列视频提供支持,那就是Brilliant。
我真的想感谢 Brilliant 赞助这个系列。如果你们能通过下面描述部分的链接查看他们的内容并支持赞助商,那将是太好了。我会在稍后谈到他们的服务。所以说完这些,让我们开始吧。好的,首先。
到目前为止,我一直在使用 Stack Overflow 调查数据。但那个数据集实际上没有任何日期或时间序列数据。所以我不得不为这个视频选择一个不同的数据集。我下载了一些历史的加密货币数据,我们可以在这个视频中进行分析,和往常一样。
我将在下面的描述部分提供下载数据和我正在使用的笔记本的链接。所以我已经打开了我的笔记本,正在读取这个 CV 文件的数据,我们来看看这是什么样子的。我们可以看到,我正在加载这个 CV 文件,我将其命名为 ETH_1H,因为这是以小时为单位的以太坊历史数据,这是一种加密货币。这些数据被分解为每小时的段落。所以如果我们查看这个数据的头部,我们可以看到有一些列在这里。
第一个是日期列,这些数据按小时分解,我们还有一些其他信息,比如符号、这些小时的开盘和收盘值、最高和最低值,以及交易量。因此,这里所有数据都是关于3月13日的,时间是晚上8点、7点。
6点等等。现在,记住,如果你想查看更多关于你的数据框的信息,比如有多少行和列,我可以运行 df.shape
。我们可以看到这里有23000行,差不多24000,所以我们有相当多的数据可以处理。现在我们就开始处理日期时间数据吧。所以我们这里有这个日期列。
这看起来只是给我们每个小时的数据,但现在这实际上并不是一个日期时间对象。我之所以能这样判断,是因为它的格式并不是日期时间通常显示的格式,但如果你想确认,可以尝试在这个数据上运行 ada 数据 pandas 日期时间方法,看看是否有效。所以让我先获取这个数据框的第一行,并抓取那个日期值。
然后我将继续尝试运行一个日期时间方法。为了获取第一个值,我只需说Df Lo
,我们可以看到这里的.X
只是零,因此我将传入a0
,并想要抓取那个日期列。因此,如果我运行现在的内容,我们可以看到我已经提取出了第一个日期。
所以现在我们就试着在这个上运行一个日期时间方法。有一个叫day_name
的方法可以告诉我们这个日期是星期几,但如果我现在运行这个,并说ok.day_name
对这个值,如果我运行它,我们可以看到出现了一个错误,提示字符串对象没有属性day_name
,因为我们当前将其作为字符串读取。那么我们如何将其转换为日期时间呢?
我们可以用几种不同的方式来做到这一点,我们将在这里讨论其中一些。如果你想像我们这里的那样将一列转换为日期时间,那么我们可以使用pandas
的to_datetime
方法。为了做到这一点,我可以简单地说我们将访问那个日期列。
我们将这个日期列设置为,然后我们只需说pd
,这是我们导入的pandas
的to_datetime
。现在我想传入那个相同的列以将其转换为日期时间。现在,我不会立即运行这个,因为如果我这样运行,pandas将尽力弄清楚日期时间的格式并相应地转换,但我这里的日期时间格式相当不同。
我怀疑这行不通,但我们还是试试看吧。好吧,我预期会出现一个错误。如果我们向下滚动查看错误,可以看到它提示未知字符串格式。因此,它不知道如何解析这个日期。但正如我之前所说,取决于你的日期格式。
那么这实际上可能适合你。恰好是以一种格式显示,pandas无法自动转换,除非我们告诉它我们的日期是如何格式化的。因此,我们需要在这里传入一个格式字符串,说明日期是如何格式化的,以便它能够正确解析。现在我提前为这个特定日期创建了正确的字符串格式。
不过要明确的是,我从来没有真的记住这些格式化代码。 我总是需要去Python文档中查找这些代码。所以我这里打开了那个页面。我会在描述部分留下这个链接。不管你的日期是如何格式化的,我们的日期是以年份开头的。
所以我们可以看到那是%Y
,然后我们有月日,因此我们可以在这里找到。另一个例子是像8 PM
这样的格式。所以我们可以看到这里的这些I
,这个I
是指12小时制,这是我们所用的。然后这个%p
是指当地的上午或下午的表示。
所以这些将会在我们的格式字符串中,但我会留一个链接以防万一你的日期格式不同,需要你自己创建。因此我需要传入的格式字符串基本上是在告诉 pandas 如何解析我们的日期,我们将先看到年份,然后是一个破折号,然后是月份,再然后是日期,中间有破折号,然后是一个空格,接着是百分比,我记得是12小时制。
然后是一个破折号,然后是百分比 P。所以让我来运行这个。如果我把它正确地输入,那么这个应该会工作。好的,所以我们没有得到任何错误。但让我们确保一下。因此我将查看这里的日期列。我们可以看到这些现在看起来更像是我们在编程中习惯看到的 datetime 对象。
所以它将晚上11点转换为23。抱歉,我以为晚上11点是第一个。不,它是晚上8点。好的。所以它将晚上8点转换为20,晚上7点转换为19,以此类推。现在这已转换为 datetime,我们应该能够运行这些之前给我们带来错误的 datetime 方法。所以在这里我们得到了这个错误,当时我们尝试抓取这些的日期名称。
我将复制这个并粘贴到这里,现在让我们尝试重新运行这个,我们可以看到现在它表示我们系列中的第一个日期,这个 3 月 13 日是一个星期五,所以这很好,看起来它工作了。现在我们这样做的方式是,在用这一行加载数据后将其转换为日期,但如果我们希望在加载数据时就将其转换为日期,那么我们也可以这样做。所以如果我回到顶部,在这里加载的这行读取 CSV。
然后我可以实际上传入一些参数来读取 CSV,以便它将某些列加载为日期时间,然后我们可以传入我们的格式字符串,以便在读取数据时解析它们。因此为此我们需要在这里传入这个解析日期参数,现在我只是要传入一个列的列表。
将会有日期。我们这里只有一个,所以这将只是一个包含一个项目的列表。抱歉,我本来想写日期,而不是日期们。现在,就像之前一样,如果你的日期已经以 pandas 能解析的方式格式化,那么你这里不需要添加其他内容。但我们之前已经看到需要传入特定的格式。
因此在这里我们不能仅仅传入格式字符串,我们需要传入一个将每个字符串转换为 datetime 对象的函数。所以首先,让我们创建那个函数。在这个系列中我们见过 lambda 函数,但以防你不熟悉,你也可以简单地创建一个普通函数,如果你更习惯这样,但这只是一种更简短的方式。所以要创建这个 lambda 函数。
我会把这个叫做 D underscore parser,我将把它设置为一个 lambda 函数。我会把 x 用作这里的变量。那么我们想要返回什么呢?所以当我们在这里使用 P do2 date time 时,我们实际上是将整个序列传递给 PD2 date。Time,但现在这实际上只是将每个单独的字符串通过这个函数。
因此,为了进行转换,我们可以使用一个名为 PDd dot date time dot SP time 的函数。这就是我们将字符串转换为时间的方式。然后我们只需传入。我们将字符串转换为日期时间,然后格式也已经在这里了。所以我会直接复制并粘贴到这里。
这就是我们所需的日期解析函数。因此,日期解析器的参数是 date underscore parser。我将把它设置为那个 D pars 变量,该变量设置为我们的 lambda 函数。好的,现在如果我运行这个单元格。然后我们可以看到没有出现错误。所以这很好。
现在如果我运行这个 D F dot head,这里。😊,那么我们可以看到现在我们的数据框已经以日期时间的形式加载。因此,我们不必在后续进行任何转换。它在读取 CSV 文件时就已经完成了。好的,现在让我们看看一些我们可以对日期时间做的更有用的事情。因此,我将删除下面的销售数据,以便不再转换这些列,因为它们已经作为日期加载进来了。
所以我会删除那个,因为之前是用来进行转换的,我也会删除那个。我会保留这个供参考,因为我之后会把这些放到我的 GitHub 上。好的。在这里之前,我们看到如何对单个值运行 datetime 方法,当我们使用这个 day name 方法时,但如果我们想对整个序列运行该方法呢?假设我们想查看这一整列日期的日期名称。
为此,我们可以访问序列对象上的 Dt 类,并以这种方式访问 datetime 方法。所以这样做。我们可以首先获取那个序列,所以日期列将返回一个序列。如果我运行它,我们可以看到得到所有那些值。现在,如果我们想要在序列对象上访问 Dt 类,我们可以直接说 .Dt。
现在我们想使用的日期时间方法。如果我想获取所有这些值的日期名称,我可以直接用 day name。然后如果我运行它,我们可以看到得到这个序列中每个日期的星期几。因此,在序列对象上使用 Dt 类非常类似于我们如何在整个序列上访问字符串类或 STR 类的字符串方法。我们在之前的视频中看到了这一点。所以这肯定是非常有用的。
假设我们想创建另一列,以便快速参考所有这些交易发生的日期。为了做到这一点,我们可以直接提取我们这里的内容,然后我可以简单地创建一个新列。😊。通过简单地像访问一列那样,所以我可以称这个列为星期几,并将其设置为并粘贴该日期时间方法。如果我运行这个,然后我们查看我们的数据框。
然后我们可以看到,现在我们可以快速看到右侧,好的,13号是星期五,然后在底部有这些日期,这是一周六,所以能看到这些交易实际上发生在哪些日期真是不错。
现在让我们看看如何探索我们的数据。通过查看最左侧的索引,我们可以看到这个数据集有超过20000行。那么让我们看看如何查看这个数据集中最早和最新的日期。为此,我们可以使用最小和最大方法。所以为了查看最早的日期,我可以简单地访问。😊。
这个日期序列。然后我可以直接对其运行最小方法。如果我运行这个,那么我们可以看到给出的最早日期是2017,0,7,0,1。现在如果我想看看那是什么。那是2017年7月1日。为了查看我拥有的最近日期,它应该是我下载这个数据的日期。
然后我可以看看这里的最大值。如果我运行这个,然后我们可以看到这是2020年3月13日,实际上是我下载这个数据的那一天。日期时间的一个非常酷的地方是我们实际上可以减去日期,以查看这两个日期之间的时间。这被称为时间差。所以为了获取这两个日期之间的时间跨度。
那么我可以简单地说取最大值,然后减去最小值。😊,如果我运行这个。然后我们可以看到这个时间差,它表明在我们数据集中最早的日期和最近的日期之间几乎有1000天。所以在这整个加密货币数据集中,我们有986天,差不多1000天。如果我们想找到一些特定的范围,这确实会是很多天需要查看。
那么如果我们想通过日期做一些过滤呢。比如说,假设我们只是想查看2020年的数据。现在我们已经将这些转换为日期时间,我们可以像在之前的视频中那样创建过滤器,并且我们应该能够使用格式像日期时间的字符串,或者可以使用实际的日期时间对象。
我们将查看这两者。所以让我们看看这个例子和一些代码,这样它就更有意义了。首先,我将创建一个在单独变量中的过滤器,就像我在之前的视频中所做的那样。但如果你更喜欢这样做,也可以在行内进行。我只是觉得将过滤器分开会稍微容易阅读一些。所以假设我想要我们的日期序列。
我想要大于某个值的对象或行。然后我现在只会传入一个字符串。这里我可以传入2020年。Pandas会知道我在说2020年。让我们实际进行一个大于或等于的操作。好的,现在我有了这个筛选。
让我们再做一次Df do Lo。我们在之前的视频中见过这个。然后我会传入那个筛选。所以如果我运行这个,那么我的底部行应该是2020年1月1日。确实是。我们可以看到这里有17000小时的2020年数据,或者抱歉,是1700小时的2020年数据。好的。这不超过2020年的原因很简单,因为我们的最新数据已经没有了。因此,我们没有2021年的数据,因为2021年还没有发生。但如果我们想要2019年的数据呢😊?那么为了做到这一点,我们还需要设置一个上限。
我将说,好吧,我们希望我们的数据大于或等于2019年。我们只是想在这里进行一个筛选。我会把这个复制过来,然后将其替换为小于,并且我们会说小于2020年。如果我运行这个,我们可以看到底部行是2019年1月1日的午夜,顶部行是2019年12月31日晚上11点。所以这给了我们2019年的所有数据行。
现在我们只是使用字符串进行这些比较,但我们也可以使用实际的日期时间。为了做到这一点,我可以说我只需说PDd datetime,然后让我传入月份和日期。所以我会说我想要的日期大于2019年1月1日,然后我会抓取这个并替换2020年。并且我希望这个日期小于2020年1月1日。所以现在如果我运行这个,哎呀,我得到了一个错误,说需要整数。
得到一个字符串可能不太合理,我在这里所做的是我不想使用PD datetime,这是我的错误,我想做我们之前所做的事情,转换为日期时间,以便将这个字符串转换为日期时间。所以我们来对这两个都使用PD。2 datetime并运行它,现在我们可以看到,我们得到了与之前相同的结果,2019年的所有行。关于日期的一个好功能是,如果我们设置索引以使用日期,这对这个数据集实际上是个好主意,因为所有的日期或时间戳都是唯一的,那么我们实际上可以通过使用切片来做到这一点。所以让我们看看这看起来是什么样子,以便更易理解。
所以首先让我们设置索引,以便它使用这个日期列。所以在底部,我会说Df set underscore index,然后我将传入我们希望将索引设置为日期。如果我运行这个,那么看起来很好,我们已经将索引设置为使用日期,现在看起来不错。
它实际上并没有进行那项更改,我想说将in place
设置为true
以使更改永久化,所以我会运行它,如果我们再次查看我们的数据框,那么现在我们将该日期作为索引,现在通过该日期索引,我们实际上可以通过将日期传递到我们的括号中来过滤日期,所以如果我们想要2019年的数据,我可以直接说我想要2019年的数据,将其传递到我的括号中,如果我运行它,那么我们可以看到我们得到相同的结果,这里我们获得了1月1日的值和顶部值。
这是12月31日,所以当这些是我们的索引时,直接在括号中访问会更简单,而不是创建过滤器。如果你想抓取特定范围的日期,那么可以使用切片。假设我们想要2020年1月和2月的所有数据,那么使用这个切片,我可以说好的,我想要从202001开始,也就是1月,然后我可以使用冒号做一个切片,然后说好的,我想要到2020年2月,所以如果我运行这个,第二个值是包含在内的,所以我们可以看到2020年1月1日在底部,这个切片一直到2月29日,因为这是一个闰年,现在这非常有用。
为了分析我们的数据,因为假设我们想要获取以太坊在这些日期的所有行的平均收盘价,做法很简单。我们可以直接抓取这个收盘列,然后计算平均值或均值。为了做到这一点,我们可以说,让我先复制这一部分。让我访问那个收盘序列,如果我运行它。
然后我们可以看到我们获取到所有这些天每个小时的收盘值。现在为了得到均值,我可以直接说Dot mean
。这给了我们在该时间范围内所有行的平均收盘价。并且要记住,每一天都是按小时报告的。
但是如果我们想以不同的方式查看这些数据呢?如果我们想要按天而不是按小时查看这些数据呢?首先,我们需要考虑什么样的视图适合按天查看。例如,假设我们想查看每天的高点。那么现在。
我们将这些高点按小时划分,实际上让我查看一下第一个。让我抓取这个日期范围,然后我们看一下前24个,这样我们可以获取24小时的数据。所以我们可以看到在2月29日,我们有这些不同的小时,每个小时都有不同的高值。但是如果我们说,好吧,我们看到所有这些不同的高值。
但那天的最高值是什么呢?所以实际上,让我抓取一天的高值,然后我们看看那天的高值。所以我们不查看所有这些日期,只抓取2020年1月1日,然后我们将查看那一天的高值。所以再次。
我们并不关心每一天每小时的高值,我们只想知道整天的高值。为此,我们只需获取该系列的最大值,我们已经看到如何做到这一点,方法就像在这里运行mean一样,我们只需说.dot max,如果我运行这个,我们可以看到那天的高值是132。
68 所以现在让我们记住这个值132.68,因为我们将看到如何对数据进行重采样,以便获得我们数据中每一天的高值。然后我们将使用这个值来与2020年1月1日进行比较。所以,现在我们的数据是按小时划分的。
如果我们想重新处理,使其按天、周或月划分,那么我们可以通过重采样来实现这一点。所以让我们看看这是什么样子。如果我想重采样并查看按天的高值。那么我可以简单地访问这个高列。在那个系列上,我可以说,好的,我想对这个进行重采样。
现在我们必须告诉重采样我们想如何重采样这些数据,现在是按小时的。如果我输入一个D,那么它会重采样为按天。如果我输入1 d或2 d,你可以随意选择。你可以用w表示周,这里有各种不同的代码。就像这些日期时间格式一样,我几乎从不记得这些。
所以我总是需要在文档中查找它们。所以我在这里拉取了pandas文档中的这些日期偏移量,并且我将在下面的描述部分中留下这个页面的链接,如果你们想尝试其中的一些。但我们可以看到,我们有小时、分钟、秒、毫秒。
微秒,各种各样的事情。如果你在做财务,你可以按季度等进行处理。所以我想每天做一次。因此,我将在这里放一个D。现在我们必须告诉它,好的,那么我们想对这些重采样做什么,如果我查看的是整天的数据。
如果我取这个整天的第一天,我想对这个高值做什么。我们只是说,我们想要每一天的最大值。所以如果我运行这个,我们可以看到这给我们提供了一个系列,包含每一天的高值。那么现在我们将这个系列保存为一个新变量,并查看之前使用的特定日期。
我将把这个保存为一个变量,称之为highs。接下来,让我们访问20200101这一天的高值。现在,由于我们使用的是相同的日期,我们应该得到132.68这个值。所以如果我运行这个。
然后我们可以看到那天的高值实际上等于我们在这里做的值,所以这有效。但现在,不像之前一次只获取一天的数据,现在我们重采样后,我们有了数据中每一天的高值。好吧,那为什么这种做法有用呢?我的意思是。
你知道,这可能很有用,因为它很有趣。但我们也可以做其他事情。假设我们想要绘制这个图。但不是逐小时查看这些价格的图,现在我们可以做一个按天划分的总价格图。在Jupyter Notebook中,绘制信息非常简单。我实际上会做一个关于使用pandas绘图的整个系列,所以我不会在这个视频中详细讲解,但我们将看到如何在这里做一个非常简单的折线图。首先,我们需要在Jupyter Notebook中使用这个特殊行,允许我们的图表在浏览器中显示。所以我们所要做的就是在这里加一个百分号,然后可以说matplotlib inline。我想提到的一件事是,我确实必须在我使用的虚拟环境中安装matplotlib,所以如果你只安装了pandas,那就要回去安装matplotlib,否则你会在这里遇到导入错误。
但我在我的虚拟环境中安装了这个,以便我们可以看到它在那里工作,现在用这一行代码,我们可以直接在我们的Jupyter笔记本中显示图表。所以我可以简单地对这个重采样的数据框变量运行绘图方法,获得图表。所以我只是说,好吧,我想要高值的图表。所以高值.dot图表。我会运行这个。
我们可以看到这里有一个不错的matplotlib图。好吧,所以这对于,知道吗,只是几行代码来说,挺不错的。现在你可能会想知道是否可以一次重采样多个列。我们可以通过在整个数据框上运行重采样方法来做到这一点,而不是在单个系列上。那么,举个例子,我这是什么意思。好吧,每当我说,知道吗。
一次重采样多个列。我是说如果我们想按天重采样。到目前为止,我们只看到如何获得高值,但如果我们说,好吧,我想按天重采样。但是我还想要,知道吗。整天的平均收盘价。我想要那整天所有交易量的总和。
然后我想要知道😊,最大高值。我想要最小低值。我们在这里通过访问单列的方式来做这件事,而用这种方法我们无法做到。所以为了重采样并使用多个列,方法如下。我们可以通过在整个数据框上运行重采样方法来实现。
所以如果你想在所有列上使用相同的聚合方法。举个例子。假设Df进行重采样。现在我们在这里重采样整个数据框对象。现在我们要传入我们想要重采样的内容。我们把“天”换成“周”。现在我们将按每周进行重采样。
所以如果你想对所有内容使用相同的聚合方法,你只需在那里放入该聚合方法。如果我运行这个,那么这将给我每个列的周均值。现在这很酷,我们可以这样做,有时你可能想这样做,但在这种情况下,使用均值来获取所有列的平均值并不合理。所以例如。
实际上没有必要每小时获取平均交易量之类的东西。你可能希望对整个时间段进行求和,或者对于我们的高低值,这些给出了平均高和平均低,但高低值的意义在于了解该时间段的最高和最低值。所以我们可能也不想在这里使用均值。那么,我们如何重采样以便可以重采样并使用多个列,同时也使用多个聚合方法呢。
我们实际上在之前的视频中已经看到过这个方法。但是我们这里想用的是AG方法,ag方法还接受我们希望在该列上运行的列和聚合函数的映射。例如。
现在,让我们用这些值来做,看看。我们将处理收盘列,高列和低列,然后我们也将处理交易量。所以我要从上面获取这些。然后我们将进行D F.dot.resample,并传入W以进行按周计算。现在,代替传入dot.mean。
就像我们在这里所做的,我将传入dot.AGG。现在我可以传入列名的字典,然后值将是我们希望在该列上使用的聚合函数。所以。例如,假设对于收盘值,我确实想获取其均值。
然后我会说高列。我想为此使用最大值聚合函数。因为我们想要低列的最大值,所以我想获取最小值。对于交易量,我将直接对整个时间段的交易量进行求和。好的,所以再次强调,我们传递给ag的方法中的字典的键。
这是列名,这里是聚合函数。所以我们正在计算收盘价的均值。我们在整个周期间计算高价的最大值,低价的最小值,然后对交易量求和。所以如果我们运行这个,它将给我们提供每周的高低概述。
还有收盘成本的平均值。同时我们也有交易量的总和。所以,你知道,这真的涉及到我们在pandas中可以对日期时间和时间序列数据做的事情。就像我刚才说的,我确实计划做一个关于pandas绘图的完整系列,我们将涵盖更高级的话题,比如绘图和滚动平均等。
在结束之前,我想感谢本视频的赞助商,那就是Brilliant。我非常喜欢Brilliant提供的教程,并且绝对推荐你们去看看。在这个系列中,我们学习了Pandas以及如何在Python中分析数据。Brilliant将是一个很好的补充,帮助你通过他们的实践课程来扩展在这里学到的知识。
他们有一些优秀的课程和课件,深入探讨如何正确思考和分析数据。对于数据分析基础,我强烈推荐他们的统计学课程,它教你如何分析图表并确定数据的显著性。我也推荐他们的机器学习课程。
这将数据分析提升到一个新的水平,你将学习被用来让机器做出决策的技术,而这些决策涉及的变量对于人类来说实在是太多了。因此,支持我的频道并了解更多关于Brilliant的信息,你可以访问brilliant.org/forgelash/cs,注册免费账户。此外,前200位访问该链接的人将获得20%的年费折扣。😊。
高级订阅。你可以在下面的描述部分找到那个链接。再次强调,那是brilliant.org/flashC。好的,我想这就是本期Pandas视频的内容。我希望你能对如何在Pandas中处理日期和时间序列数据有个很好的理解。正如我所说,我们还有很多内容可以覆盖与日期时间数据相关的知识。
我觉得我们所做的应该为你提供能够转换、分析和重采样数据的基础,以便你能够进行所需的精确分析。在下一个视频中,我们将学习如何从不同来源读取Pandas中的数据。
到目前为止,在这个系列中我们只涵盖了文件,但我们将学习如何从Excel、网站、SQL数据库和其他一些来源读取数据。请务必关注这一内容。如果有人对本视频中所涉及的内容有任何疑问,请随时在下面的评论区提问。
我会尽力回答这些问题。如果你喜欢这些教程。😊,也可以通过点赞来支持它们。还有一些其他方式可以做到这一点。最简单的方式就是给视频点个赞,并且分享这些视频给你认为会觉得有用的人。如果你有条件的话,可以支持我的Patreon。
在下面的描述部分有一个链接。请务必订阅以获取未来的视频。感谢大家的观看。😊。
用 Pandas 进行数据处理与分析!真实数据&实时讲解,学完就能上手做数据分析了!<实战教程系列> - P11:11)更多数据源 - Excel、JSON、SQL 等格式数据读写 - ShowMeAI - BV1M64y187bz
嘿,大家好,最近怎么样?在这个视频中,我们将学习如何读取和写入不同来源的数据。所以我们将学习如何使用 CV 文件、Excel 文件、Json 以及 SQL 数据库进行数据的读取和写入。到目前为止,在这个系列中,我们一直在从 CV 文件中读取数据。但在数据科学中。
数据存储的方式有很多种。因此,在这个视频结束时,你应该能够将数据进出 pandas,无论你使用什么数据格式。现在,如果你观看这个视频是因为你在寻找如何读取和写入特定文件格式,那么我会在下面的描述部分添加时间戳,指向我们从每种不同格式读取和写入的地方。
现在,我想提到的是我们确实有一个赞助商来支持这一系列视频。那就是 brilliant。所以我非常感谢 brilliant 赞助这个系列。如果大家能通过下面描述部分的链接查看他们,并支持赞助商,那就太好了。我会在稍后更多地谈论他们的服务。因此,话说回来。
让我们开始吧。好的,首先,让我们看看 CV 文件,因为我们已经在这一系列中使用过这些😊。我们应该已经熟悉从 CSV 中读取数据,因为到目前为止我们一直在做这个。但如果这是你观看的系列的第一部视频,让我们再复习一遍,然后我们也将学习如何写入 CV 文件。
所以在我笔记本的顶部,我们可以看到我正在读取这个 CSV 文件,这个 Cv 文件位于与文件系统中的 Jupyter 笔记本相同位置的一个数据文件夹中。如果你在系统的其他地方加载了一个 cv 文件,那么你需要传递该文件的完整路径,而不仅仅是我们这里的相对位置。
我们可以看到在读取我们的 Cv 文件时可以传递不同的参数。所以在这个例子中,我将索引自动设置为此受访者列,即每个参与此调查的人的受访者 ID。当我读取 Cv 时,我们可以看到它将这个数据框架设置为相等。
到数据,我们可以在底部打印出这些数据。所以这是读取 CSV 的方法,它允许我们将数据导入到 pandas 中。现在让我们学习如何将这些数据写回到 CSV 中。也许你会对数据框进行一些更改和不同的分析,然后我们想将其导出回文件系统以便后续使用,或者与其他人分享之类的。
例如,我们可以过滤这个调查中的特定位置,可能你正在为你的特定国家进行一些分析,你只想看到来自该位置的调查结果,我们在之前的视频中见过这一点。但是如果我们想过滤,我们可以简单地说我会在这里创建一个过滤器,只要说我想要这里的国家,如果国家等于印度。所以假设你在做一些分析,你只想要来自印度的调查结果,现在我要在这里创建一个新的数据框。
我将称之为 Indiadf 并做一个 Df do Lo 并传入过滤器。所以现在如果我做一个 Indiadf do head 来查看这个新数据框的开头,如果我们在国家列中查看,那么我们可以看到这里所有的国家现在都设置为印度。所以现在假设我们想将这个新的过滤数据框导出到一个 CSv 文件。因此,为此我们可以使用两个 CSv 方法。
所以我们可以说我会说印度下划线 Df,这就是我们的数据框 do2 下划线 CSv,现在我将把它传入那个数据目录中的相同位置,然后我将称之为这个修改后的 do cv。所以如果我运行这个,我们可以看到没有任何错误,现在如果我回去看看我的文件系统,那么我有这个修改后的 do cv。
所以如果我点击这个。那么我们可以看到这现在是一个小块在一起,因为这是一个 CSV 文件。我们正在查看一个 Ros CSsv 文件。但我们可以看到我们有所有的列名在这里。然后第二行应该是第一个结果,我可以看到这里我们有印度作为那个国家,如果我查看第二个结果,我们可以看到我们再次有印度,并且在这里再次有印度,我可能看不到,但你知道我们可以假设它在那里,看起来很好。
实际上,它就在那儿。所以我们可以看到我们确实将这个数据框导出到一个新的 CSv 文件中,所以这很简单。现在让我们看看如何读取和写入一些其他格式。所以你可能会遇到一个制表符分隔的文件,这几乎与 CSV 文件完全相同。
但是你的数据不是用逗号分隔,而是用制表符分隔。因此,为此,我们仍将使用我们已经看到的相同的 CSV 方法,但我们将传入一个自定义分隔符,所以我们可以通过将文件扩展名更改为 TSV 来写入一个制表符分隔的文件,我还将指定一个分隔符参数。所以我会说ep SP。然后你想传入你的分隔符。
如果你想传入任何内容,例如用井号分隔的文件或其他内容,但逗号和制表符可能是最常见的。所以我将在这里放一个反斜杠 T,因为这就是我们在 Python 中指定制表符的方式。现在,如果我运行这个单元,我将返回到我们的数据目录,我们可以看到现在我们有这个修改后的 do TSv。如果我点击它,我们可以看到这看起来几乎和逗号分隔的文件一样。
但是现在我们这里有制表符而不是逗号。现在,如果你正在读取制表符分隔的 CSV 文件,你只需要将 SP 设置为反斜杠 T。你可以将其作为参数添加到这里的 read CSV,这基本上是相同的。好的,现在让我们继续其他文件格式。
在处理这种数据时,非常流行的文件格式是 Excel。现在,如果我们想写入 Excel,那么我们需要 Pip 安装几个软件包。所以我打开了我的终端,当前环境是我在使用的 Jupyter notebook。让我抓取我的另一个终端。所以我在 Jupiter 中使用的是相同的环境。
你想确保使用相同的环境,以便你的 Pip 安装在正确的位置。现在我们要安装几个软件包。首先,我要说 Pip install。这是 Xl W T。Xwt 将写入较旧的 Xls Excel 格式。但如果你想写入较新的 Excel 格式。
然后我们还需要安装 open pi XL。你可以通过列出所有软件包来安装多个。😊,但只需在这里列出它们。最后,如果我们想读取 Excel 文件,那么我们可以安装 X LRD 包。所以我认为这是我们在处理 Excel 文件时所需的三个软件包。所以我将继续安装所有这些,让它们完成。一旦安装完成。
让我们回到我们的笔记本。现在让我们尝试写入一个 Excel 文件。为了写入 Excel 文件,我将写入我们这里的相同修改后的数据框。我们将使用两个下划线 Excel 方法。这就像传入一个参数一样简单。比如说,我将把它保存在那个数据文件夹中。我将其命名为 modified dot Xls X。
所以我将写入较新的 Excel 格式。如果我运行这个,它可能需要一段时间来完成,因为它实际上是在后台创建这个 Excel 文件。让我们等它完成,当这个从星号变为数字时,我们就可以知道它完成了。好的,完成后,让我们翻到数据文件夹,我们可以看到确实有那个 dot Xlsx 文件。
现在,这在 Jupiter 中可能无法打开,因为这是一个 Excel 文件。我们可以看到,我们无法在浏览器中打开它。我们实际上需要 Excel。所以让我打开我的查找器窗口。我在这里打开了它。我在这个数据文件夹中,我们可以看到我们有修改后的 dot Xsx 文件。
现在我实际上在这台机器上没有 Excel,我有 Numbers。所以我将在 Numbers 中打开它。它在 Windows 上基本上应该是一样的,但你可以直接用 Excel 打开。再次说明,这可能需要一秒钟来打开,因为我们这里的数据仍然有很多行。好的。
所以我们已经在 Excel 中打开了这个文件。再次说明,我用的是 Numbers,因为我在 Mac 上,没有安装 Excel。但它在 Excel 中也应该能正常打开。让我放大一点,以便我们可以看到,如果需要,我们可以格式化这些内容。例如,我们可以在这里更改列的大小,使所有内容适应,但我们可以看到我们的回应者是。
如果我查看国家,我们可以看到它确实导出了我们希望导出的过滤数据框。所以一切看起来都很好。现在,我们还可以对 Excel 做一些更高级的操作。如果你熟悉 Excel,可能知道我们有不同工作表的概念,可以在一个 Excel 文件中有多个电子表格。如果你想读取或写入特定工作表。
那么你可以将工作表参数传递给这些方法。实际上,我正在尝试滚动到我的笔记本上。让我滚动到最底部。正如我所说的,如果你想读取或写入特定工作表,你可以将工作表参数传递给这些方法。还有一种方法可以从不同的列和行开始。
但我不打算在这里深入探讨这些小细节。如果你在谷歌上搜索这个方法名称与 Excel 相关的内容,你可以找到可以传入的参数和文档中的所有额外细节。所以现在,让我们继续,看看如何读取我们刚创建的同一个 Excel 文件,并确保这能够正常工作。默认情况下,它会加载一个默认索引,就像我们读取 Cv 文件时一样。
所以我们需要指定我们的索引列是那个回应者列。为了做到这一点,我就叫它测试,因为我们将从刚创建的 Excel 文件中创建一个新的数据框。我们将使用 read_excel
方法,并且我想传入位置,我会复制这个位置。
这是我机器上的修改版 Xl S X。现在我要将索引列设置为回应者,在你的数据中可能会不同,但我希望我的索引列等于那个回应者。所以我将运行那个单元格并加载它,然后查看测试数据框。在我运行这个之前,我会确保这个处理完成,并且这个星号消失。
这可能需要一些时间,因为它实际上是在从Excel加载数据,这比从CSV加载要复杂一些。那么现在如果我们查看这个测试数据框,让我只看一下头部,而不是查看整个内容。如果我查看头部,那么我们可以看到这里有一个与上面相同的数据框。
所以这被导出到Excel并正确导入了。好的。那么现在我们来介绍一些其他流行的文件格式。现在JSon在这种数据中也非常流行。那么我们来看一下。首先,让我们将修改后的数据框写入一个Json文件。对于写入Json文件,我们可以使用to_json方法。
所以你可能开始看到一个模式。这些方法名称非常直接。现在这个稍微有点不同,因为我们可以为Json使用一些不同的方向。因此,只需使用默认参数,我可以说,这就是India_Df.to_json。然后我将传入一个文件位置,但不是Excel文件,而是Json文件。
现在我将暂时使用默认参数。然后我会告诉你如何稍微改变一下。所以如果我运行这个。我们可以看到它运行得非常快。如果我返回到我的数据文件夹。那么现在我们有了这个JSon文件。如果我在这里查看。好的。
这只花了一秒钟就能在我的机器上打开。再说,我们这里确实有很多数据。但是如果我们在这里查看,就会发现这非常像字典。所以我们这里有一个主分支键,然后该键的值是仅针对该列的所有响应。如果我向下滚动,就能找到其他键和其他响应。因此,默认情况下,这就像一个字典类型的Json。现在,我们也可以用不同的方式来编写Json文件。
再次,我不会深入到每一个细节。但假设我们希望这个Json是列表形式而不是默认的字典形式。那么为了做到这一点,我们可以更改orient参数。所以我们在参数中添加一个。并且我会说orient等于。如果我们传入records,并且lines等于true。
然后这将使其变成记录形式,即列表形式。并且lines等于true。让我拼写正确。好吧,只是让每个都在新的一行上。这样可能更容易阅读。如果你想查看可以传递给orient的确切参数,那么再次查看pandas的to_json方法。它会带你到文档中,那里有所有可以传入的不同内容。
所以让我运行这个。现在让我们返回并重新加载我们的Json文件,看看它的样子。现在我们这里有的更像是列表形式。因此在之前我们有一个单一的字典,其中的值是所有响应的列表。但是现在我们一次只有一个响应。所以我们有主分支。然后这实际上是这里的第一个。如果我向下滚动。
我们可以看到这是第二个。😊这实际上是整个第一个响应。所以我们有主要分支,然后是答案,然后是开源,然后是答案,依此类推。我们在这里看到,对于国家,我们有印度。每个调查中的响应实际上都在不同的行上。
这与之前的情况有点不同,但我们可以根据需要以不同的方式导出这些 Json 文件。好的。那么现在我们已经将数据写入 Json 文件。现在让我们也读取这个 Json 文件,以确保我们知道如何做到这一点。
现在,由于我们在这里使用这些不同的参数写了 Json 文件。那么在读取数据时,我们也需要使用相同的参数。所以,如果你在读取 Json 文件时遇到任何问题,那么你可能需要调整不同的参数以适应你尝试读取的数据。
在这种情况下,我要复制整行。然后我会说 test 等于。实际上,让我先抓取这部分。我会说 pd.read_json,然后将所有这些参数传递在这里。所以我们从这个位置读取 JSON 文件。我们知道 Orient 是列表而不是字典,并且这些都是在新行上。
同样,根据你的 JSON 数据,你可能需要根据数据的外观来调整这些设置。所以如果我运行这个,看看。如果我们有之前导出的相同数据。看起来是这样的,这看起来与我们导出数据时完全相同。好的。那么我们要查看的最后一种文件格式。
让我们学习如何从 SQL 数据库读取和写入数据。现在,这可能是最复杂的,因为你需要先设置数据库以及所有相关的配置。但为了本视频的目的,我将假设你已经有一个带有正确登录凭据的数据库。因此,我在我的机器上设置了一个 Postgres 数据库,将用于读取和写入。
首先,让我们看看如何连接到这个数据库。现在,就像使用 Excel 一样,我们需要安装一个包来实现这一点。所以让我打开我的终端。我要关闭这个数字文件。让我试着退出这个,实际上,我会把它最小化。关闭时遇到了一些麻烦。好的。
让我回到我希望能打开以安装一些不同包的终端。这是我的 Jupyter notebook。我的另一个终端在哪里?来了。好的。那么要连接到我们的数据库,我们需要安装 SQL Alchemy。这是一个非常流行的 Python ORM,它使我们更容易处理数据库。
如果你不知道什么是 ORM,它是对象关系映射的缩写。这只是我们用 Python 对象连接到数据库的一种方式。我计划将来制作一个关于 SQLAlchemy 的完整视频或系列教程。但现在,让我们继续安装这个。所以这是 Pip install SQLAlchemy。我将安装它。
根据你使用的数据库,你可能在这里不需要做其他任何事情。例如,如果你使用的是 SQLite 或类似的东西。但由于我在这个教程中使用的是 Postgres 数据库,我还需要安装 psycopg2 包,以便我们能够使用 Postgres。
我不确定这是否是这个包的正确发音,但我一直都是这么称呼它的。所以 Pip install 以安装这个与 Postgres 一起使用的包,它是 psycopg2-binary。所以我将安装它,安装了这些包后,让我们回到我们的笔记本,看看能否使用 SQLAlchemy 连接到这个数据库。
首先,我们需要导入所有需要的内容。所以从 SQLAlchemy 中,我将导入他们的创建引擎,这将允许我们连接到数据库。现在我还需要导入 psycopg2。所以让我运行这个单元,现在这些都已导入,我们应该能够创建引擎。
这基本上是我们的数据库连接。再次假设你已经创建了这个数据库并拥有用户名和密码。为了创建它,我可以说 engine 等于,并使用我们刚刚从 SQLAlchemy 导入的 create_engine 函数,现在我们需要我们的 Postgres 连接字符串。如果你不知道如何创建 Postgres 连接字符串,他们在 SQLAlchemy 网站上也有相关信息。让我确保我拼写正确,应该是 PostgresQL,然后我们要传入数据库的用户名和密码。在我的案例中,我只创建了一个名为 Db_user 的用户和一个密码 Db_pass。还有一点我想提到的是,你可能不应该像这样在代码中放置凭据。我会在下面的描述部分留一个链接,展示如何在 Python 中使用环境变量或配置文件来隐藏这些信息,但为了本教程的方便,我就直接放在这里。
但是如果你在做生产代码,我强烈建议使用环境变量,这样你就不会在代码中暴露用户名和密码。好的,所以我们有了我们的用户名和密码。现在是我们想要连接的数据库。这是在本地主机上。这是在我的本地机器上。它运行在 5432 端口,现在是数据库的名称。
现在我在这里打开了 Pg 管理器,可以看到我的数据库。我们可以看到我刚刚创建了一个名为 sample underscore Db 的空数据库。这就是我将要连接的数据库。好的,如果我在这里输入的内容正确,那么我应该能够连接到这个数据库。
现在让我们尝试将修改后的数据库框架写入这个数据库中的一个表。这个表不需要当前存在。默认情况下,它会为我们创建这个表。如果它已经存在,我们需要添加另一个参数来处理。但我们马上就会看到这一点。为了做到这一点,我可以直接说 India underscore Df。
这是我们想要导出的数据框。接着是 to underscore S Q O。现在我们想要写入此数据的表。我将其称为 sample underscore table。现在,这个表目前不存在,但它应该会被创建。现在我们需要传入我们的数据库连接。
我称之为引擎。现在让我们传入它。如果我运行这个,我们来看看它是否有效。好的,所以在我读取或写入时没有出现任何错误。但现在让我们回到我的 PG 管理器,看看我能否看到这个表。首先,我只需右键单击并刷新。我喜欢在进行任何更改时这样做。
我们可以在这里看到,我们在下面有一个样本表。我将右键单击它,选择查看和编辑数据,查看所有行。我们可以看到这确实有效。我知道在我的屏幕上可能有点难以看到,但我们的所有数据都写入了数据库。好的。
所以能够将数据从 pandas 导入 SQL 很好。但是如果我们更新了数据并希望将其重写到这个数据库中怎么办?让我们回到我们的笔记本,看看这将是什么样子。现在,如果我尝试再次运行这行,将其导出到 SQL。
然后我们实际上会得到一个错误,因为这个表已经存在。如果你想覆盖一个表,我们可以添加一个额外的参数。我们想要添加的参数称为 if underscore exists 等于。现在,如果这个表已经存在,我们该怎么办。现在,在我的情况下。
我将把那个表替换为我们的新数据。
但还有其他选项。我们可以让它抛出一个错误,这就是默认情况下的行为。我们也可以将数据追加到一个表中。因此,如果你在进行每日脚本以分析信息,你可以将每日数据追加到现有表中,但对于这个例子来说。
我只是要用这个替换表。现在运行这个,处理完成后我会回到PG admin,再次让我上去刷新一下,深入数据库,关闭这个视图,看看我们是否仍然有这个数据。好的,我们可以看到这个有效,我们能够重新运行那个命令,并且用我们的新数据替换了原有表中的数据。在这个情况下,它是相同的。
是的,但这就是你要怎么做的。好了,最后,现在我们已经看到如何将数据添加到数据库。现在让我们看看如何使用SQL读取相同的数据。如果你跳到视频的这一部分,使用下面描述部分的时间戳。
那么请回去查看我们如何将数据写入数据库,并看看我在这里是如何设置这个数据库连接的,因为我们将重用那个连接来读取我们的数据。好了,所以这现在很简单,因为我们实际上已经设置好了这个数据库连接来做到这一点。
我们可以简单地说我会称之为SQL_df
。然后我们会说pd.read_sql
,现在我们想传入我们要读取的表。那个是sample_table
,现在传入我们的数据库连接。我这里的连接。
我称之为engine
。而且,我还会传入一个索引列,就像我们在读取CSV时所做的那样。所以我会说索引列等于,这将是你数据中的这个respondent
行,可能会有所不同。因此,无论你想要什么作为索引,都可以传入。如果你想让pandas使用默认索引,那么你可以完全省略这个。好的,如果我运行这个,那么让我们看看SQL_df.head
以确保这个有效。
我们可以看到这运行得很好,我们仍然有与开始时相同的数据框,我们将这些国家筛选为仅来自印度的结果。现在可能有一些情况,你不想加载整个表,而是想运行一个特定的SQL查询来加载我们的数据。
我们可以使用方法read_sql_query
来运行一个特定的SQL查询。所以让我复制我在这里所做的,并粘贴到这里。现在我不打算读取整个表,而是实际上要在这里运行一个查询。所以我会做read_sql_query
。现在在这里不再是表名。
我实际上要传入一个SQL查询。现在我只是要在这里加载所有内容。所以我会说select * from sample_table
,其他所有内容都将是相同的。我们仍然有我们的数据库连接,并且我们仍然希望索引列等于respondent
。所以这仍然会抓取所有行,但如果你想自定义这个。
然后你可以在这里添加一个 where 子句来过滤数据。让我来运行一下。现在我们来看一下我们的 SQL 数据框。我们可以看到这也成功了。因此,我们使用 SQL 查询加载这些数据,而不是简单地读取整个表。这在处理大数据库时特别有用,你只想通过查询加载特定数据。
好的,我们快要完成了。但在结束之前让我再给你一个提示。你可能见过一些人使用 URL 而不是特定文件加载数据,这对于我们之前看过的一些方法是可以的。你只需确保使用正确的方法来处理 URL 上的数据格式。
例如,在我的 Flask 和 Django 系列中,我创建了一个 Json 文件,其中包含该系列网站的一些示例帖子。这个 Json 文件在我的 GitHub 页面上。如果我想将其引入 pandas,那么我可以简单地使用读取 Json 方法,并传入那个 URL。实际上我不需要先下载那个 Json,然后再以那种方式传入。
我在这里打开这个。如果你不知道,GitHub 上可以查看原始文件。我们可以看到这里有一个很长的 URL,但我会在下面的描述部分发布这段代码,方便你跟进。所以我将复制这个 URL。这不在我的文件系统上。现在看看我们是否可以直接加载它。我将这个命名为 post_df。
我将其设置为 P D.dot.read_json,因为这是 URL 上的 Json。如果是 Cv,你需要使用 read_csv,依此类推。现在我可以在这里粘贴那个 URL。现在让我们运行这个单元格。我们可以看到没有出现错误。现在我来查看一下我们数据框的头部。我们可以看到我确实有我的示例帖子。
这些是我在那个网站系列中使用的示例帖子。因此,根据那个 URL 中的数据,你应该能够使用我们看到的方法,从 URL 加载数据,就像我们在这里做的一样。在结束之前,我想感谢本视频的赞助商,那就是 Brilliant。我非常喜欢 Brilliant 提供的教程,绝对推荐你去看看。
Brilliant 是一个问题解决网站,通过主动完成指导课程来帮助你理解基础概念。Brilliant 是补充你在这里学到的内容的绝佳方式,提供动手课程。他们在数据科学方面有一些优秀的课程和课程,深入探讨如何正确思考和分析数据。因此,如果你在看我的 Pandas 系列,是因为你想进入数据科学领域。
那么我强烈建议你也去查看 brilliant,看看你可以学习哪些其他的数据科学技能。他们在统计课程中甚至使用 Python,并会考你如何正确使用。😊。
在该语言中组织数据。它们的指导课程会挑战你,但你也可以获得提示甚至解决方案,如果你需要的话。它真的很注重理解材料。所以支持我的频道并了解更多关于 brilliant 的信息。
你可以去 brilliant.org 注册免费账户,并且前 200 位访问该链接的人将获得年度高级订阅 20% 的折扣,你可以在下面的描述部分找到这个链接。再次提醒,那是 brilliant.org,所以我认为这段 pandas 视频就到这里。
我希望你能对如何从多个不同来源读取和写入数据有一个清晰的认识。我们在这里讨论的内容应该涵盖你在数据科学领域会看到和使用的大多数文件格式。现在,在这段视频之后,我可能会暂时中断这个 pandas 系列,制作几个我一直想要覆盖的单独视频。但我知道 pandas 还有很多主题需要探讨,我会在未来的视频中涉及那些更高级的话题。
😊。
但与此同时,如果你想找到一个学习 pandas 的好资源,那么我强烈建议你查看 Data School 频道。这个频道由 Kevin Markham 运营,他已经在 Pycon 上做了几年的 pandas 教程,他并没有让我推荐他的频道,我只是认为他做得很好。其实他的频道完全致力于 pandas 和数据科学。
他已经涵盖了一些我计划在未来视频中讨论的更高级主题。如果有人对本视频中的内容有任何问题,请随时在评论区提问,我会尽力回答。
如果你喜欢这些教程并想要支持他们,还有几种方式可以做到这一点。最简单的方法是给视频点个赞,并分享这些视频给任何你认为会觉得有用的人。如果你有能力的话,可以通过 Patreon 贡献支持,相关链接在下面的描述部分。
确保订阅以获取未来的视频。感谢大家的观看。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)