65.9K
CodeProject 正在变化。 阅读更多。
Home

将 CSV 和 SQL 数据加载到 Pandas

starIconstarIconstarIconstarIconstarIcon

5.00/5 (12投票s)

2020 年 5 月 29 日

CPOL

4分钟阅读

viewsIcon

18865

downloadIcon

585

在本系列“使用 Python 和 Pandas 进行数据清理”的第二部分中,现在我们已经设置好了 Jupyter Notebook 并初始化了一些基本库,我们需要加载一些数据。为此,我们将从 CSV 文件以及本地 SQLite 数据库加载数据。

引言

本文是《使用 Python 和 Pandas 进行数据清洗》系列的一部分。其目标是帮助开发人员快速上手数据科学工具和技术。

如果您想查看该系列中的其他文章,可以在此处找到它们。

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

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

在我们开始之前,请确保 customers.csv 文件和与本系列配套的 remoteDB.db 已复制到我们保存的 Notebook 的同一目录中。

从 CSV 加载数据

首先,让我们看看如何将数据从 CSV 文件加载到 Pandas。为了简单起见,我们将加载添加到 Notebook 同一目录的 customers.csv 文件,但您也可以远程加载它。在 Notebook 中添加一个新的输入行,包含以下命令:

pd.read_csv("customers.csv")

此命令使用 Pandas 库加载并显示我们的 customers.csv 文件。

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

在 Pandas 中,表格被称为 DataFrame,它是一种类似于电子表格的二维数据结构。

让我们将其放入一个变量中,并通过修改代码行来显示前五行:

# Read data from the CSV files
customers = pd.read_csv("customers.csv")
print(customers.head(5))

(请注意,在这里以及文章的其余部分,您都会在代码后面立即看到运行代码的结果。)

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

从 SQLite 加载数据

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

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

import sqlite3 as sql

然后,在读取 CSV 文件中的客户数据之后,添加以下代码:

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" 修饰符)显示有关数据的统计信息,例如有效值的计数、唯一值的数量、值的频率等。

请注意,有些计数与总数不匹配。这是因为单元格中存在缺失信息,我们需要找到并更正它。我们的数据集包括客户和产品信息,以及几个月内的购买记录,因此它为我们定义了大量的不同信息。

摘要

我们使用 Pandas DataFrame 数据结构从 CSV 文件和 SQL 服务器加载了数据。我们还快速查看了一些基本分析函数,它们显示了我们数据集的有用信息。

现在,让我们通过探索查找和处理缺失值的一些选项来继续进行数据清理。

© . All rights reserved.