Форум сайта python.su
Добрый день.
Пытаюсь добавить данные для их обработки из нескольких файлов 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())
Офлайн
по первому вопросу можно так
>>> s ='aaa qqqq' >>> l = s.split() >>> l[0] + ' ' + '"{}"'.format(l[1]) 'aaa "qqqq"'
Онлайн
vic57Должна получиться таблица, состоящая из Table1 и добавленных к ней столбцов Table2 (кроме первого). В обеих таблицах в первом столбце значения одинаковые, но могут быть в разном порядке.
по второму не совсем понятно что вы складываете
vic57Спасибо большое, проверю)))
по первому вопросу можно так
Офлайн
greker1а как она должна выглядеть? если объединение таблиц то и пишите в одну таблицу
Должна получиться таблиц
Онлайн
Есть изначально две таблицы с данными по одним и тем же отделам, но с разными данными в столбцах. Как их объединить в одну общую таблицу, связав по отделам?
Table1 (лист1 файла):
123 “Бухгалтерия” 123 456 4584651
123 “HR” 4535 7873576 763453543
123 “IT” 694651654 1563156 542
123 “Логистика” 1 9 56465465165164
Table2 (лист2 файла):
123 “IT” 6565 6554 123
123 “Бухгалтерия” 3451345 12 456429679
123 “Логистика” 0 77 999
123 “HR” 75735375 1 786757342342345
Должно получиться:
123 “Бухгалтерия” 123 456 4584651 3451345 12 456429679
123 “HR” 4535 7873576 763453543 75735375 1 786757342342345
123 “IT” 694651654 1563156 542 6565 6554 123
123 “Логистика” 1 9 56465465165164 0 77 999
Отредактировано greker1 (Окт. 20, 2024 16:43:46)
Офлайн
ну типа так
l1 = [ ['123 “Бухгалтерия”', '123 456 4584651'], ['123 “HR”', '4535 7873576 763453543'], ['123 “IT”', '694651654 1563156 542'], ['123 “Логистика”', '1 9 56465465165164'], ] l2 = [ ['123 “IT”', '6565 6554 123'], ['123 “Бухгалтерия”', '3451345 12 456429679'], ['123 “Логистика”', '0 77 999'], ['123 “HR”', '75735375 1 786757342342345'] ] ''' 123 “Бухгалтерия” 123 456 4584651 3451345 12 456429679 123 “HR” 4535 7873576 763453543 75735375 1 786757342342345 123 “IT” 694651654 1563156 542 6565 6554 123 123 “Логистика” 1 9 56465465165164 0 77 999 ''' t = l1 + l2 d = {} for line in t: d[line[0]] = [] for line in t: d[line[0]] += line[1:] for k in d: print(k,' '.join(d[k]))
Онлайн