首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python将excel工作簿转换为Mysql数据库

如何使用python将excel工作簿转换为Mysql数据库
EN

Stack Overflow用户
提问于 2020-07-20 04:33:26
回答 1查看 5.5K关注 0票数 2

有没有办法将我的excel工作簿转换成MySQL数据库?例如,假设我的Excel工作簿名为copybook.xls,那么MySQL数据库名将是复制本。我做不到。你的帮助会很感激的。

EN

回答 1

Stack Overflow用户

发布于 2020-07-20 07:43:30

在这里,我概述和解释了这一过程,包括相关文件的链接。由于原问题中缺少一些更彻底的细节,因此需要根据具体需要对这一方法进行调整。

解决方案

在这个过程中有两个步骤:

1)将Excel工作簿导入为Pandas数据框架

在这里,我们使用使用pandas.read_excel的标准方法从Excel文件中获取数据。如果有我们想要的特定工作表,可以使用sheet_name选择它。如果文件包含列标签,我们可以使用参数index_col来包含它们。

代码语言:javascript
复制
import pandas as pd
# Let's select Characters sheet and include column labels
df = pd.read_excel("copybook.xls", sheet_name = "Characters", index_col = 0)

df现在包含以下虚构的数据框架,它表示原始Excel文件中的数据

代码语言:javascript
复制
first   last
0   John    Snow
1   Sansa   Stark
2   Bran    Stark

2)将存储在DataFrame中的记录写入SQL数据库

熊猫有一种通过pandas.DataFrame.to_sql库与SQLAlchemy数据库交互的简洁方法。最初的问题提到了MySQL,所以这里我们假设我们已经有了一个MySQL的运行实例。为了连接数据库,我们使用create_engine。最后,我们将存储在数据帧中的记录写入名为characters的SQL表。

代码语言:javascript
复制
from sqlalchemy import create_engine
engine = create_engine('mysql://USERNAME:PASSWORD@localhost/copybook')
# Write records stored in a DataFrame to a SQL database
df.to_sql("characters", con = engine)

我们可以检查数据是否已被存储。

代码语言:javascript
复制
engine.execute("SELECT * FROM characters").fetchall()

Out:
[(0, 'John', 'Snow'), (1, 'Sansa', 'Stark'), (2, 'Bran', 'Stark')]

或者更好的方法是使用pandas.read_sql_table作为数据帧直接读取数据。

代码语言:javascript
复制
pd.read_sql_table("characters", engine)

Out:
index   first   last
0   0   John    Snow
1   1   Sansa   Stark
2   2   Bran    Stark

了解更多

没有可用的MySQL实例?

您可以通过使用内存中版本的SQLite数据库来测试该方法.只需复制粘贴以下代码即可:

代码语言:javascript
复制
import pandas as pd
from sqlalchemy import create_engine
# Create a new SQLite instance in memory
engine = create_engine("sqlite://")
# Create a dummy data frame for testing or read it from Excel file using pandas.read_excel
df = pd.DataFrame({'first' : ['John', 'Sansa', 'Bran'], 'last' : ['Snow', 'Stark', 'Stark']})
# Write records stored in a DataFrame to a SQL database
df.to_sql("characters", con = engine)
# Read SQL database table into a DataFrame
pd.read_sql_table('characters', engine)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62988718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档