gpt4 book ai didi

python - 我正在尝试将数据框插入本地 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-30 21:25:35 25 4
gpt4 key购买 nike

我是 MySQL 和 pandas 的新手。

我创建了一个随机数据框:

data_frame = pd.DataFrame(np.random.randint(
0, 100, size=(100, 4)), columns=list('ABCD'))

我想将它插入到我本地的 MySQL 数据库中:

db = mysql.connector.connect(host="localhost",
user='root',
password='pw123',
database='analytics',
port='3307',
auth_plugin='mysql_native_password')
data_frame.to_sql(name='test',
con=db, if_exists='append', index=False)

但是我得到一个错误

pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Not all parameters were used in the SQL statement

如果我使用 sqlalchemy:

engine = create_engine("mysql://root:pw123@localhost/analytics")
con = engine.connect()
df = pd.DataFrame(['A', 'B'], columns=['new_tablecol'])
df.to_sql(name='new_table', con=con, if_exists='append')
con.close()

我收到这个错误:

sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: YES)")

而且我知道我使用的是正确的密码。此时我不知道如何将我的数据框插入本地数据库。

感谢您的帮助。

最佳答案

最终使用:

import pandas as pd
import numpy as np
from sqlalchemy import create_engine

engine = create_engine(
'mysql+pymysql://root:password@localhost:3307/analytics')
data_frame = pd.DataFrame(np.random.randint(
0, 100, size=(100, 4)), columns=list('ABCD'))
data_frame.to_sql('new', con=engine)

必须导入

pip install cryptography

然后在我的 cronjobs 中用 to_sql 替换了 to_csv:

joined.to_sql('export_1', con=engine, if_exists = 'replace')

效果很好。

关于python - 我正在尝试将数据框插入本地 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59248915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com