ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用 Pandas 和正则表达式轻松转换数据

2022-09-12 02:03:48  阅读:283  来源: 互联网

标签:转换 正则表达式 RAM 轻松 Pandas 笔记本电脑 数据 pandas


使用 Pandas 和正则表达式轻松转换数据

介绍

让我们根据问题陈述使用 pandas 和正则表达式轻松转换此数据集。

在这个项目的提取阶段,我向您介绍了如何抓取 易趣网 网站。你可以找到链接 萃取阶段

在此转换阶段,您将了解将这 3 个字段数据集转换为 11 个字段数据集的所有思考过程。

为了正确理解你要去哪里,重要的是你要记住问题陈述是什么。

问题陈述

Global Sygnature 是一家在哈科特港市销售新笔记本电脑的公司,其 CEO 收到了很多关于质量相当好的笔记本电脑的要求。他决定进入这一业务领域以扩展他们提供的服务。

他遇到了商业情报机构 Primedsoft,帮助他从 ebay 中提取有关笔记本电脑的数据。他说他希望看到以下指标:

  • 笔记本电脑的平均价格
  • 列出的最昂贵的笔记本电脑
  • 列出的最便宜的笔记本电脑
  • 各大品牌均价
  • 最受欢迎的顶级品牌
  • 按操作系统列出的大多数笔记本电脑
  • 笔记本电脑的价格基于其当前状态
  • 按驱动器类型、磁盘大小和 RAM 大小划分的笔记本电脑平均价格。
  • 可以从有助于决策的数据中获得的任何其他见解。

这些指标将构成转型阶段的核心。您希望将此数据集转换为有助于获取这些指标的字段和数据类型。

这里的另一个重要技能是对业务领域的正确理解。领域知识的重要性怎么强调都不为过。

例如,对计算机硬件的正确理解会表明,RAM和处理器等配件是影响笔记本电脑价格的关键数据。大多数买家在决定购买该系统之前也会考虑品牌。

快速浏览数据集会发现“圈详细信息”字段中有很多数据点。这些数据点是我们旨在提取和形成新字段的目标。

导入 Numpy 和 Pandas 库和常规 REGEX 模块

我们将使用 python 中的 pandas 库和正则表达式模块来进行这种转换。首先导入此转换所需的必要库和模块。

代码片段中的最后一个设置是告诉 pandas 显示每列的整个宽度。在这个阶段,我希望您具备 pandas 的工作知识。所以我继续导入数据集所在的 csv 文件,并使用 .head() 方法检查前 5 列。

使用正则表达式从现有列创建新列

在这里,我想从“实验室详细信息”列中提取驱动器。因此,我在正则表达式中使用了 extract 方法来获取所有附有 GB 的数字的所有实例。这将返回它的第一次出现。

现在,我使用相同的方法提取并创建“RAM”、“RAM 大小”和“Laptop OS”列。

但是,有些列需要 switch 语句。为了通过 pandas 实现这一点,我使用了 numpy where.() 方法。

因此,通过上面的代码片段,我创建了“Lap OS”、“Drive Type”、“Processor Type”和“Laptop Brand”。这完成了我们需要的所有必要列。

在这里,我将所有字段重命名为蛇案例命名约定。这将实现一致性。

然后用空字符串替换逗号的所有实例。

原因是因为我们将它保存为 csv 格式,它将每次出现的逗号作为一个新列,这反过来会创建比变量中声明的更多的列。

结论

我们已经能够将一列转换为其他几列。让我们将此数据帧保存在 csv 文件中,以供项目的下一阶段使用,即将其加载到 postgres 数据库中。现在这个项目逐渐看起来像我们想要的。

最初发表于 https://blog.dekings.dev 2022 年 9 月 11 日。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/29436/26221201

标签:转换,正则表达式,RAM,轻松,Pandas,笔记本电脑,数据,pandas
来源: https://www.cnblogs.com/amboke/p/16685293.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有