使用 Pandas 处理数据库
对保存在 SQL 中的数据执行各种操作可能会导致执行非常复杂且不易编写的查询。因此,为了使这项任务更容易,使用专门为数据预处理构建并且比 SQL 更简单和用户友好的 pandas 来完成这项工作通常很有用。
在某些情况下,有时数据存储在 SQL 中,我们想在Python中从 SQL 中获取该数据,然后使用 pandas 执行操作。那么让我们看看如何使用 pandas 与 SQL 数据库进行交互。
这是我们要使用的数据库
糖尿病数据
注意:假设我们的数据存储在 sqlite3
读取数据
# import the libraries
import sqlite3
import pandas as pd
# create a connection
con = sqlite3.connect('Diabetes.db')
# read data from SQL to pandas dataframe.
data = pd.read_sql_query('Select * from Diabetes;', con)
# show top 5 rows
data.head()
输出
基本操作
- 切片行
- 选择特定列
选择特定列或从数据框中选择列数以进一步处理数据。# read the data from sql to # pandas dataframe. data = pd.read_sql_query('Select * from Diabetes;', con) # selecting specific columns. df2 = data.loc[:, ['Glucose', 'BloodPressure']].head() df2
输出:
- 总结数据
为了从数据中获得洞察力,我们必须对数据进行统计汇总。要显示数据的统计摘要,例如平均值、中位数、众数、标准差等。我们执行以下操作# read the data from sql # to pandas dataframe. data = pd.read_sql_query('Select * from Diabetes;', con) # summarize the data data.describe()
输出:
- 根据列对数据进行排序
用于根据给定列值对数据框进行排序# read the data from sql # to pandas dataframe. data = pd.read_sql_query('Select * from Diabetes;', con) # sort data with respect # to particular column. data.sort_values(by ='Age').head()
输出:
- 显示每列的平均值
显示数据框每一列的平均值。# read the data from sql # to pandas dataframe. data = pd.read_sql_query('Select * from Diabetes;', con) # count number of rows and columns data.mean()
输出:
我们可以执行切片操作以从给定范围内获取所需的行数。
借助切片,我们可以只对数据的特定子集执行各种操作
# read the data from sql to pandas dataframe.
data = pd.read_sql_query('Select * from Diabetes;', con)
# slicing the number of rows
df1 = data[10:15]
df1
输出