python将Excel文档转成.db数据库文件

python实现Excel转.db数据库

1.程序实现

程序实现以下功能:

1.读取一个Excel文件,文件名通过函数传参数传入

2.将文件读取的内容保存到一个数据库文件中

3.数据库的文件名以传入的Excel文件的文件名命名

4.将excel文件的工作簿的名字作为数据库的表单名

5.将Excel文件的第一行作为数据库的列命名

6.将Excel文件的每一个行的内容加入数据库中

python 复制代码
import pandas as pd
import sqlite3
import os
import sys
def excel_to_sqlite(excel_file_path):
    try:
        # 获取 Excel 文件名(不包括扩展名)
        excel_file_name = excel_file_path.split('/')[-1].split('.')[0]

        # 创建 SQLite 数据库连接
        db_file_name = f"{excel_file_name}.db"
        conn = sqlite3.connect(db_file_name)

        # 使用 ExcelFile 类打开 Excel 文件
        excel_file = pd.ExcelFile(excel_file_path)

        # 遍历所有工作簿
        for sheet_name in excel_file.sheet_names:
            # 从 Excel 文件读取数据框
            df = pd.read_excel(excel_file, sheet_name)

            # 将数据框写入 SQLite 数据库,使用工作簿的名字作为表名
            df.to_sql(sheet_name, conn, index=False, if_exists='replace')

        # 关闭数据库连接
        conn.close()

        print(f"成功将 Excel 文件 {excel_file_path} 写入 SQLite 数据库 {db_file_name} 中的所有工作簿。")

    except Exception as e:
        print(f"发生错误: {e}")

def get_data_from_db(db_file_name, table_name):
    try:
        # 创建 SQLite 数据库连接
        conn = sqlite3.connect(db_file_name)

        # 使用 SQL 查询获取数据
        query = f"SELECT * FROM {table_name};"
        df = pd.read_sql_query(query, conn)

        # 打印获取的数据
        print(f"获取 {db_file_name} 数据库中表 {table_name} 的数据:")

        # 关闭数据库连接
        conn.close()

    except Exception as e:
        print(f"发生错误: {e}")

# 调用函数将 Excel 文件写入 SQLite 数据库

if __name__ == "__main__":
    print("开始将 Excel 文件写入 SQLite 数据库...")
    excel_file_path = sys.argv[1]
    excel_to_sqlite(excel_file_path)
    excel_name = excel_file_path.split('/')[-1].split('.')[0]
    db_name = f"{excel_name}.db"
    get_data_from_db(db_name,"AIR")//AIR是Excel文档中的工作簿的名字

2.数据查询、获取

在函数get_data_from_db中,df的数据类型是<class 'pandas.core.frame.DataFrame'>

在 pandas 中,DataFrame 类提供了许多有用的属性和方法,以便处理和分析数据。以下是 DataFrame 类的一些常用属性和方法,以及简要说明:

  1. head(n):

    • 作用:返回数据框的前 n 行。

    • 示例:

      复制代码
      df.head(5)  # 返回前5行
  2. tail(n):

    • 作用:返回数据框的后 n 行。

    • 示例:

      复制代码
      df.tail(3)  # 返回后3行
  3. shape:

    • 作用:返回数据框的形状,即行数和列数。

    • 示例:

      复制代码
      print(df.shape)  # 返回 (行数, 列数)
  4. columns:

    • 作用:返回数据框的列名。

    • 示例:

      复制代码
      print(df.columns)  # 返回列名列表
  5. describe():

    • 作用:返回数据框的描述性统计信息,如均值、标准差等。

    • 示例:

      复制代码
      print(df.describe())
  6. info():

    • 作用:返回数据框的基本信息,包括每列的数据类型和非空值数量。

    • 示例:

      复制代码
      df.info()
  7. loc[row_index, col_name]:

    • 作用:通过行和列的标签选择单个元素。

    • 示例:

      复制代码
      print(df.loc[0, 'ColumnName'])
  8. iloc[row_index, col_index]:

    • 作用:通过行和列的索引选择单个元素。

    • 示例:

      复制代码
      print(df.iloc[0, 2])
  9. set_index(col_name):

    • 作用:将指定列设置为索引列。

    • 示例:

      复制代码
      df.set_index('ColumnName', inplace=True)
  10. groupby(col_name):

    • 作用:按指定列对数据框进行分组。

    • 示例:

      复制代码
      grouped_data = df.groupby('ColumnName')
  11. sort_values(by=col_name, ascending=True):

    • 作用:根据指定列对数据框进行排序。

    • 示例:

      复制代码
      df.sort_values(by='ColumnName', ascending=False, inplace=True)
  12. fillna(value):

    • 作用:用指定值填充缺失值。

    • 示例:

      复制代码
      df.fillna(0, inplace=True)

这只是 DataFrame 类的一小部分功能,pandas 提供了更多用于数据处理和分析的工具。

相关推荐
喵手2 分钟前
Python爬虫实战:公共自行车站点智能采集系统 - 从零构建生产级爬虫的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集公共自行车站点·公共自行车站点智能采集系统·采集公共自行车站点导出csv
喵手9 分钟前
Python爬虫实战:地图 POI + 行政区反查实战 - 商圈热力数据准备完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·地区poi·行政区反查·商圈热力数据采集
熊猫_豆豆15 分钟前
YOLOP车道检测
人工智能·python·算法
nimadan1216 分钟前
**热门短剧小说扫榜工具2025推荐,精准捕捉爆款趋势与流量
人工智能·python
qq_124987075319 分钟前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
默默前行的虫虫21 分钟前
MQTT.fx实际操作
python
YMWM_30 分钟前
python3继承使用
开发语言·python
JMchen12331 分钟前
AI编程与软件工程的学科融合:构建新一代智能驱动开发方法学
驱动开发·python·软件工程·ai编程
倒流时光三十年1 小时前
SpringBoot 数据库同步 Elasticsearch 性能优化
数据库·spring boot·elasticsearch
亓才孓1 小时前
[Class类的应用]反射的理解
开发语言·python