如何用SQL语言查询多个Excel表格

本文介绍了如何利用Python的pandas和pandasql库,将Excel表格转换为可进行SQL查询的数据结构。通过将Excel文件中的每个Sheet作为单独的数据库表,并利用sqldf函数执行SQL查询,实现了对多个Excel表格的多表查询功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没错,之前我也不知道SQL语言除了可以查询(本文只讨论查询语句)数据库,还可以查询Excel,或者说经过一定处理后,可以像查询数据库一样查询Excel。

下面给出一个场景,假如你有几个(个数未知)Excel表格,你想在这些表格上实现SQL多表查询,该怎么办?

像这样:

学号姓名
1054小姜
1055小王
1061小李
1081王哥
课程名称任课老师
人工智能王老师
数据库李老师
运筹学张老师
概率论郝老师
学号课程名称分数
1054人工智能90
1055数据库91
1061运筹学92
1081概率论91
1054运筹学89
1055概率论91
1061人工智能95
1081数据库94

大致思路如下:

  • 将所有要导入的Excel表放入一个.xlsx文件中,将各Sheet命名为表名,类似数据库的table名;
  • 利用pandas库读取.xlsx文件并创建为一个ExcelFile类;
  • 利用类中名为sheet_names的property获取其所有该文件所有的Sheet名;
  • 用locals和read_excel函数创建名为各sheet名,值为各sheet内容的局部变量;
  • 利用pandasql库中的sqldf来查询一个或多个dataframe,sqldf函数默认查询所有局部变量中的dataframe。

代码如下:

import pandas as pd
from pandasql import sqldf

def dealwith_excel(excel_file,sql_query):
    
    xls = pd.ExcelFile(excel_file)
    
    sheet_names = xls.sheet_names #list type
    # print(sheet_names)

    for sheet_name in sheet_names:
        locals()[sheet_name] = pd.read_excel(excel_file, sheet_name=sheet_name)
    df_result = sqldf(sql_query)
    return df_result

最后返回的就是查询结果!

感谢支持

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值