Пытаюсь добавить данные для их обработки из нескольких файлов xlsx в одну созданную базу baza.db с помощью питона версии 3.9.7 (пакет Anaconda + jupyter notebook).
Есть код, создающий две таблицы:
import sqlite3 import pyodbc import pandas as pd from datetime import datetime, timedelta, date import time import openpyxl from openpyxl.utils.dataframe import dataframe_to_rows import csv with sqlite3.connect(r'путь \baza.db') as conn: cursor = conn.cursor() # Открытие файла Excel и чтение данных df1 = pd.read_excel(r'путь \файл1.xlsx', sheet_name='Лист1', usecols="A:J", nrows=4) df2 = pd.read_excel(r'путь \файл1.xlsx', sheet_name='Лист2', usecols="A,C:I,K:Q,U:V", nrows=6, skiprows=1) for index, row in df1.iterrows(): values_list = [row[column] for column in df1.columns] insert_query = """ INSERT INTO Table1 (Ст1, Ст2, Ст3, Ст4, Ст5, Ст6, Ст7, Ст8, Ст9, Ст10) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?); """ cursor.execute(insert_query, values_list) conn.commit() for index, row in df2.iterrows(): values_list = [row[column] for column in df2.columns] insert_query = """ INSERT INTO Table2 (Ст1, Ст2, Ст3, Ст4, Ст5, Ст6, Ст7, Ст8, Ст9, Ст10, Ст11, Ст12, Ст13, Ст14, Ст15, Ст16, Ст17) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); """ cursor.execute(insert_query, values_list) conn.commit() cursor.close() conn.close() print("Данные подгружены"+time.ctime())
Есть две проблемы:
1) В столбце A с листа 2 (df2) надо добавить кавычки в каждую ячейку столбца: сейчас там все значения в формате ‘АБВ Вапваупауи’, а нужен вид ‘АБВ “Вапваупауи”’. Значения текстовые, разная длина.
2) Надо запихнуть данные с обоих листов файла в одну таблицу (а не две), по сути сложенную из обеих (к Table1 подтянуть значения Table2 (столбцы: Ст2, Ст3, Ст4, Ст5, Ст6, Ст7, Ст8, Ст9, Ст10, Ст11, Ст12, Ст13, Ст14, Ст15, Ст16, Ст17), на обоих листах файла excel текстовые значения в столбцах A совпадают (спасибо кавычкам), но могут быть расположены в разном порядке.
Подскажите, как допилить, пожалуйста)))