> 技术文档 > 猫头虎分享:使用 Pandas 实现数据处理与 SQL 语句生成的完整教程_pandasai生成sql

猫头虎分享:使用 Pandas 实现数据处理与 SQL 语句生成的完整教程_pandasai生成sql


🐯 猫头虎分享:使用 Pandas 实现数据处理与 SQL 语句生成的完整教程

📖 简介

在数据处理中,经常会遇到从 Excel 文件中提取数据并生成 SQL 更新语句的需求。今天,猫头虎就带大家用 pandas 库完成一个实际案例:读取 Excel 数据、按关键字段分组并合并后,生成符合业务逻辑的 SQL 更新语句。

作者简介


猫头虎是谁?

大家好,我是 猫头虎,猫头虎技术团队创始人,也被大家称为猫哥。我目前是COC北京城市开发者社区主理人COC西安城市开发者社区主理人,以及云原生开发者社区主理人,在多个技术领域如云原生、前端、后端、运维和AI都具备丰富经验。

我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用方法、前沿科技资讯、产品评测、产品使用体验,以及产品优缺点分析、横向对比、技术沙龙参会体验等。我的分享聚焦于云服务产品评测、AI产品对比、开发板性能测试和技术报告

目前,我活跃在CSDN、51CTO、腾讯云、阿里云开发者社区、知乎、微信公众号、视频号、抖音、B站、小红书等平台,全网粉丝已超过30万。我所有平台的IP名称统一为猫头虎猫头虎博主

我希望通过我的分享,帮助大家更好地掌握和使用各种技术产品,提升开发效率与体验。


猫头虎分享:使用 Pandas 实现数据处理与 SQL 语句生成的完整教程_pandasai生成sql


作者名片 ✍️

  • 博主猫头虎
  • 全网搜索关键词猫头虎
  • 作者微信号Libin9iOak
  • 作者公众号猫头虎技术团队
  • 更新日期2024年10月10日
  • 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能!

加入我们AI共创团队 🌐

  • 猫头虎AI共创社群矩阵列表
    • 点我进入共创社群矩阵入口
    • 点我进入新矩阵备用链接入口

加入猫头虎的共创圈,一起探索编程世界的无限可能! 🚀


文章目录

  • 🐯 猫头虎分享:使用 Pandas 实现数据处理与 SQL 语句生成的完整教程
    • 📖 简介
  • 作者简介
    • 猫头虎是谁?
    • 作者名片 ✍️
    • 加入我们AI共创团队 🌐
    • 加入猫头虎的共创圈,一起探索编程世界的无限可能! 🚀
  • 正文
    • 📂 数据示例
    • 🐾 实例一:提取唯一 ID 并生成查询语句
      • 功能需求
      • 实现代码
    • 🐾 实例二:按 ID 分组并生成 SQL 更新语句
      • 功能需求
      • 实现代码
    • 🐯 总结
  • 粉丝福利区
      • 联系我与版权声明 📩

猫头虎分享:使用 Pandas 实现数据处理与 SQL 语句生成的完整教程_pandasai生成sql

正文



📂 数据示例

数据文件示例如下(libin9ioak_dataset.xlsx):

id file_description file_location 1234567890abcdef01 file1.txt /data/path/file1.txt 1234567890abcdef01 file2.txt /data/path/file2.txt abcdef9876543210 report1.pdf /reports/report1.pdf abcdef9876543210 report2.pdf /reports/report2.pdf

🐾 实例一:提取唯一 ID 并生成查询语句

功能需求

  1. 从 Excel 文件中提取唯一的 id
  2. 使用提取的 id 生成 SQL 查询语句。

实现代码

import pandas as pd# 📂 定义文件路径excel_file_path = r\'D:\\猫头虎\\excel\\libin9ioak_dataset.xlsx\'output_sql_file = r\'D:\\猫头虎\\excel\\output_query.sql\'# 📥 读取 Excel 文件,同时确保 \'id\' 被读取为字符串df = pd.read_excel(excel_file_path, dtype={\'id\': str})# 🧹 提取唯一的 IDunique_ids = df[\'id\'].dropna().unique()# 🖋️ 生成 SQL 查询语句sql_query = ( \"SELECT id, file_description, file_location \" \"FROM `libin9ioak_table` WHERE id IN (\\n\" + \",\\n\".join(f\"\'{id}\'\" for id in unique_ids) + \"\\n);\")# 💾 保存 SQL 查询语句到文件with open(output_sql_file, \'w\', encoding=\'utf-8\') as file: file.write(sql_query)print(f\"SQL 查询语句已保存到 {output_sql_file}\")

🐾 实例二:按 ID 分组并生成 SQL 更新语句

功能需求

  1. id 分组。
  2. 合并每组的文件描述(file_description)和路径(file_location)。
  3. 生成更新 SQL 语句并保存到 .sql 文件中。

实现代码

import pandas as pd# 📂 定义文件路径excel_file_path = r\'D:\\猫头虎\\excel\\libin9ioak_dataset.xlsx\'output_excel_file = r\'D:\\猫头虎\\excel\\merged_dataset.xlsx\'output_sql_file = r\'D:\\猫头虎\\excel\\update_queries.sql\'# 📥 读取 Excel 文件,同时确保 \'id\' 被读取为字符串df = pd.read_excel(excel_file_path, dtype={\'id\': str})# 🔄 按 \'id\' 分组并合并文件描述和路径result = df.groupby(\'id\').agg({ \'file_description\': lambda x: \',\'.join(x.dropna().astype(str)), \'file_location\': lambda x: \',\'.join(x.dropna().astype(str))}).reset_index()# 💾 保存分组结果到新的 Excel 文件result.to_excel(output_excel_file, index=False)# 🖋️ 生成 SQL 更新语句sql_statements = []for _, row in result.iterrows(): record_id = row[\'id\'] file_description = row[\'file_description\'].replace(\"\'\", \"\'\'\") # 转义单引号 file_location = row[\'file_location\'].replace(\"\'\", \"\'\'\") # 转义单引号 sql = (f\"UPDATE `libin9ioak_table` SET \"  f\"file_description = \'{file_description}\', \"  f\"file_location = \'{file_location}\' \"  f\"WHERE id = \'{record_id}\';\") sql_statements.append(sql)# 💾 保存 SQL 语句到文件with open(output_sql_file, \'w\', encoding=\'utf-8\') as file: file.write(\'\\n\'.join(sql_statements))print(f\"分组数据已保存到 {output_excel_file}\")print(f\"SQL 更新语句已保存到 {output_sql_file}\")

🐯 总结

通过以上代码,我们实现了以下功能:

  1. 提取唯一 ID 并生成查询语句。
  2. 按 ID 分组,合并字段数据并生成更新语句。

希望这个案例能对你的项目有所帮助!

如需更多技术分享,欢迎关注 猫头虎技术团队! 🚀


猫头虎分享:使用 Pandas 实现数据处理与 SQL 语句生成的完整教程_pandasai生成sql

粉丝福利区


👉 更多信息:有任何疑问或者需要进一步探讨的内容,欢迎点击文末名片获取更多信息。我是猫头虎博主,期待与您的交流! 🦉💬


联系我与版权声明 📩

  • 联系方式
    • 微信: Libin9iOak
    • 公众号: 猫头虎技术团队
  • 版权声明
    本文为原创文章,版权归作者所有。未经许可,禁止转载。更多内容请访问猫头虎的博客首页。

点击✨⬇️下方名片⬇️✨,加入猫头虎AI共创社群矩阵。一起探索科技的未来,共同成长。🚀

猫头虎AI共创计划

🔗 猫头虎抱团AI共创社群 | 🔗 Go语言VIP专栏 | 🔗 GitHub 代码仓库 | 🔗 Go生态洞察专栏 ✨ 猫头虎精品博文