摘要:数据无处不在,对全球的企业和开发人员来说已经变得至关重要。Python 是一种在数据方面做得特别好的语言。每个数据科学家都知道这一点,并且通常必须依靠 Python 来完成工作。
从 Web 抓取到 AWS 集成,这五个 Python 库可以帮助各个技能水平的数据工程师。
数据无处不在,对全球的企业和开发人员来说已经变得至关重要。Python 是一种在数据方面做得特别好的语言。每个数据科学家都知道这一点,并且通常必须依靠 Python 来完成工作。
Python 具有许多开箱即用的核心功能,但每个认真的数据工程师都知道,第三方库是充分利用您的企业收集的数据的必要条件。
您将找到对涵盖各种使用案例和项目需求的数据有用的库,包括数据流和管道、数据分析、云库、大数据库、数据解析、机器学习等等。
但是你应该使用哪个呢?让我们从最适合初学者的库开始,然后逐步介绍更高级的库。
让我们首先谈谈最适合刚开始数据工程和 Python 之旅的初学者的库。
如果您需要从网站中抓取信息,那么 Beautiful Soup 4 是您想要的库。Beautiful Soup 4 的官方描述是“一个可以轻松地从网页中抓取信息的库。它位于 HTML 或 XML 解析器之上,为迭代、搜索和修改解析树提供 Pythonic 惯用语。
网络抓取的步骤如下所示:
您的应用程序会向您要抓取的网页的 URL 发送 HTTP 请求。目标服务器返回网页的 HTML 内容。解析器(例如 html5lib)用于创建 HTML 数据的嵌套树结构。然后,BeautifulSoup 遍历解析树以提取所需的数据。然后可以使用 Beautiful Soup 4 提取数据,如下所示:
Requests
另一个适合初学者的库是 Requests,它是一个简单、优雅的 HTTP 库,允许您发送 HTTP/1.1 请求,而无需向 URL 添加手动查询字符串。Request 是一个很棒的库,用于从 RESTful API 检索数据、获取网页进行抓取、将数据发送到服务器端点等等。Requests 提供了一个用户友好的 API 来发出 HTTP 请求;支持 GET、POST、PUT 和 DELETE 等 HTTP 方法;处理身份验证、cookie 和会话;并支持 SSL 验证、超时和连接池。
requests 库的使用非常简单。下面是一个示例:
现在让我们看一下一些面向中级数据工程师的库。
Airflow
Apache Airflow 是一个库,用于编写、计划和监控面向批处理的工作流。该库是管理数据工程工作流的强大工具,使用户能够有效地自动化和监控数据管道,并连接几乎任何技术。Airflow 可以在符合 POSIX 的操作系统上运行,并定期在现代 Linux 发行版和最新版本的 macOS 上进行测试。
Airflow 包括一个 Web 界面,可帮助管理工作流程的状态。它可以通过多种方式进行部署,从单台计算机上的单个进程到用于超大型工作流的分布式设置。
上面做了以下事情:
导入必要的库。定义一个简单的函数 print_hello 来打印消息。创建以下默认参数的字典:DAG 的所有者、是否取决于过去的运行、开始日期和失败时的重试次数。创建名为 hello_airflow 的 DAG 实例以每天运行。定义三个任务:start_task(指示工作流开始的虚拟任务)、hello_task(调用 print_hello 函数)和 end_task(指示工作流结束的另一个虚拟任务)。使用 >> 运算符将任务链接在一起,以便start_task先运行,然后hello_task,最后end_task。Boto3
如果您需要将 Python 应用程序与 Amazon S3、EC2、Amazon DynamoDB 或 Amazon Lambda 集成,则需要 Boto3,这是适用于 Python 的 AWS 软件开发工具包。
Boto3 使您可以在 Python 应用程序中利用 AWS 服务,从而轻松构建和管理基于云的解决方案。
Boto3 的功能包括:
包括两个主要接口:Resource API(一种高级抽象,用于以更典型的 Pythonic 方式使用 AWS 服务)和客户端 API(一种提供对 AWS 服务 API 的直接访问的低级接口)。配置简单:Boto3 简化了配置 AWS 凭证和设置的过程。全面的文档:您将找到大量文档,指导您完成 Boto3 的安装、配置和使用。社区支持:有一个大型社区,提供大量在线资源、教程和示例。Pandas
Pandas 是可用的最流行的数据操作和分析库之一。Pandas 支持读取和写入多种格式(如 CSV、Excel、SQL 等)的数据,并包括用于筛选、分组、合并和重塑数据的功能。
尽管初学者和中级用户都可以使用 Pandas 的基本用法,但要真正充分利用此库,您需要对该语言有更深入的了解。
Pandas 的功能包括:
数据结构:Series(能够保存任何数据类型的一维标记数组)和 DataFrames(二维标记数据结构,其列可以是不同类型的;类似于电子表格或 SQL 表)。数据操作:数据清理(用于处理缺失数据、筛选和转换数据集)和数据转换(用于重塑和透视数据集、蛋白酥皮以及联接来自不同来源的数据)。数据分析:统计函数(用于执行统计运算的内置方法,例如平均值、中位数和标准差)和分组依据运算(对数据进行分组和对新组执行聚合函数的能力)。数据输入/输出:文件处理(读取和写入各种文件格式,例如 CSV、Excel、JSON 和 SQL 数据库)。时间序列分析:日期和时间函数(用于处理时间序列数据的专用函数,例如日期范围生成和频率转换)。与可视化库集成:虽然 Pandas 不是可视化库,但它可以与 Matplotlib 和 Seaborn 等库集成以进行数据绘图。Python 代码中的 pandas 库示例可能如下所示:
以上是每个数据工程师都应该知道的 5 个 Python 库。是的,还有很多,但这五个应该是一个坚实的起点。
来源:AI中国一点号