使用Python和Pandas进行数据清洗

本教程是“数据清洗PythonPandas”系列的一部分,旨在帮助开发者快速上手数据科学工具和技术。如果对本系列的其他文章感兴趣,可以在这里找到它们:

一旦设置了Jupyter Notebook并初始化了一些基本库,需要加载一些数据。为此,将从CSV文件和本地SQLite数据库加载数据。然后,将展示Pandas中一些基本的分析和功能,可以使用它们来显示和执行对数据的基本分析。

为本系列模块创建了一个完整的Jupyter Notebook,并附带了源数据文件,可以下载并本地安装。

在开始之前,请确保将customers.csv文件和本系列附带的remoteDB.db数据库文件复制到保存的Notebook的同一目录中。

从CSV加载数据

让首先看看如何从CSV文件加载数据到Pandas。将加载与Notebook同一目录下的customers.csv文件,以保持事情简单,但也可以远程加载。在笔记本中添加一个新的输入行,包含以下命令:

pd.read_csv("customers.csv")

这个命令使用Pandas库加载并显示customers.csv文件。

根据显示的行,将立即看到数据中存在的一些潜在问题,这些问题显示为NaN。还将看到生成的表格输出。

在Pandas中,表格被称为DataFrame,这是一个类似于电子表格的二维数据结构。让将这个移动到一个变量中,并修改代码行以显示前五行:

customers = pd.read_csv("customers.csv") print(customers.head(5))

(请注意,这里和本文的其他地方,将看到运行代码后立即显示的结果。)

这将读取CSV到一个变量中,并显示数据结构的前五行。

从SQLite加载数据

现在让从SQLite数据库加载一些额外的数据到Pandas。将使用sqlite3库来加载和读取数据库。可以使用类似的过程与常规数据库以及不同的Python库,但SQLite是无服务器的,只需要之前复制的单个数据库文件。让将这个文件作为数据库访问。

首先,将修改第一个代码块,以包含另一个Python库:

import sqlite3 as sql

然后,在读取CSV文件的customers之后,添加以下代码:

con = sql.connect("remoteDB.db") products = pd.read_sql_query("SELECT * from products", con) purchases = pd.read_sql_query("SELECT * from purchases", con) con.close() print(products.head(5)) print(purchases.head(5))

如果逐步执行这段代码,第一行连接到数据库文件remoteDB.db。接下来的两行使用Pandas从每个SQL查询的返回结果创建一个DataFrame。在这个例子中,有两个表,“products”和“purchases”。最后,这个块的最后一行关闭了对SQL数据库的连接。

然后打印每个变量的前五行的副本。这两个数据集的头部看起来相当不错,所以将不得不看看它们是否有进一步的问题。

基本数据分析

在继续之前,让对数据集进行一个快速的基本分析。创建一个新的代码块并输入以下代码:

print(customers.shape) print(customers.dtypes) print(customers.describe(include="all"))

以下是一些结果:

对于这三个表,这段代码将为加载的数据生成一些基本统计信息。

shape方法显示了每个DataFrame的行数和列数。

dtypes方法显示了涉及的数据类型。

describe方法(带有include="all"修饰符)显示了数据的统计信息,例如有效值的数量、唯一值的数量、值的频率等。

注意,一些计数与总数不匹配。这是因为单元格中缺少信息,需要找到并纠正。数据集包括客户和产品信息,以及几个月的购买情况,因此为定义了很多不同的信息。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485