【发布时间】:2019-05-14 04:55:52
【问题描述】:
我有多个 excel 文件,其中有多个工作表我正在尝试将它们加载到 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 文件,其中包含多个工作表 示例 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 数据,首先将其加载到一个表中,然后取出第二个工作表并将其加载到另一个表中,所以在上面的 df 中我做了这个更改看看代码是否正常工作 pd.read_excel(open(path+ "/" +file, 'rb'), sheet_name=i[0]) 但它没有任何想法?
谢谢
【问题讨论】: