使用SQL做数据分析
使用SQL做数据分析的本质是查询DataFrame对象。当读取Excel、JSON、CSV、HTML等文件的时候均返回DataFrame的对象,这时候你可以直接使用SQL进行查询。这里只以Excel和JSON为例,其它格式的文件格式的数据类似。首先你必须先安装pandasql:
pip install pandasql
1、查询DataFrame对象的数据
import pandas as pd
from pandasql import sqldf
# 定义数据
data_001 = [
['G001', '人工智能导论', 19, '人工智能', '清华出版社'],
['G002', '数据科学导论', 29, '数据科学', '邮电出版社'],
['G003', '机器学习导论', 39, '人工智能', '清华出版社'],
['G004', '深度学习导论', 28, '人工智能', '清华出版社'],
['G005', '数据科学简史', 21, '数据科学', '机械出版社'],
['G006', '数据挖掘导学', 59, '数据科学', '机械出版社'],
['G007', '智能制造导引', 78, '自动控制', '机械出版社'],
['G008', '智能制造导论', 99, '自动控制', '电子出版社'],
['G009', '自动控制导论', 66, '自动控制', '电子出版社'],
['G010', '自动控制导引', 38, '自动控制', '电子出版社']
]
# 定义列名
columns = ['goods_id', 'goods_name', 'goods_price', 'goods_type', 'goods_maker']
# 创建DataFrame
goods_df = pd.DataFrame(data_001, columns=columns)
# 打印DataFrame
goods_df.head(5)
# 查询价格在50-80之间的数据
SQL = "SELECT * FROM goods_df where goods_price >= 50 and goods_price <=80 "
result_df = sqldf(SQL, globals())
result_df
2、查询Excel文件的数据
import pandas as pd
# 读取 Excel 文件
goods_df = pd.read_excel('data/5_Data_Analysis/SQL_Analysis/goods.xlsx', sheet_name='Sheet1')
# 打印 DataFrame
goods_df
# 按照价格goods_price正序排序
SQL = "SELECT * FROM goods_df ORDER BY goods_price ASC;"
result_df = sqldf(SQL, globals())
result_df
3、查询JSON文件的数据
有如下json文件:
[
{
"goods_id": "G001",
"goods_name": "人工智能导论",
"goods_price": 19,
"goods_type": "人工智能",
"goods_maker": "清华出版社"
},
{