У меня есть несколько файлов Excel, у которых в inturn есть несколько листов. Я пытаюсь загрузить их в базу данных mysql. Ниже приведен мой рабочий код для Excel с одним листом.
import pandas as pd
df = pd.read_excel(open(path+ "/" +file, 'rb'), sheet_name='Sheet1')
table_name = "sample"
# Defaulting null values to 0 .
df=df.fillna(0)
# inserting the data.
df.to_sql(con=engine, name=table_name, if_exists='replace', schema=None)
Приведенный выше код работает, но одна проблема1. Я жестко кодирую имя таблицы, в идеале я хотел бы иметь то же имя, что и файл Excel, я, вероятно, могу использовать split и просто получить имя файла, если есть лучший способ получить имя файла без расширения.
но реальная проблема здесь
Теперь в моей папке может быть несколько файлов Excel с листами mulyiple внутри них. Пример document1.xlsx (с двумя листами внутри: sheet1 и sheet2) Это то, что я сделал
xls = pd.ExcelFile('document1.xlsx')
sheets = []
sheets = xls.sheet_names
#type(sheets)
#print(sheets)this gives me list containing sheet1,sheet2
for i in sheets:
#print(i)
df = pd.read_excel(open(path+ "/" +file, 'rb'), sheet_name=i)
df.to_sql(con=engine, name=table_name, if_exists='replace', schema=None)
В вышеприведенном коде фрейм данных сохраняет данные обоих листов, но я хочу сохранить данные листа 1, сначала загрузить их в таблицу, затем взять второй лист и загрузить в другую таблицу, поэтому в приведенном выше примере я сделал этоизмените, чтобы увидеть, работает ли код pd.read_excel (open (path + "/" + file, 'rb'), sheet_name = i [0]), но он не работает ни для каких идей??
Спасибо