mysql - 如何将 pandas 数据框作为表写入 MySQL 数据库?

标签 mysql python-3.x pandas pymysql

只是一个简单的问题,伙计们:我在 mysql 中创建了一个 darabase(意见):

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| opinions           |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.06 sec)

我还有一个 Pandas 数据框df:

import pandas as pd
df = pd.read_csv('file.csv', sep='|', names=['id', 'opinions'])
df.head(3)

输出:

    id content
0   id1 'blablababla
1   id2 'blalbabla
...
n   idn 'blalbabl

然后,我想将 df 作为表(items)加载到 opinions 数据库中。这是我尝试过的:

import mysql.connector
from sqlalchemy import create_engine

engine = create_engine('mysql+mysqlconnector://user:password@localhost:3306/opinions', echo=False)
df.to_sql(name='items', con=engine, if_exists = 'replace', index=False)
df

但是,我遇到了这个异常:

OperationalError: (mysql.connector.errors.OperationalError) 2055: Lost connection to MySQL server at 'localhost:3306', system error: 32 Broken pipe

我应该如何将 df 表加载或写入 opinions 数据库?

最佳答案

在你的 MySQL 服务器上,opinions 不是一个 table,而是一个 database(如 show databases 所暗示的) ,这基本上是表格的集合。但是,您只能对表发出 select 语句。

您可以检查哪些表格,例如通过 SHOW TABLES IN opinions 存在。 将数据库作为参数添加到连接也很方便:

config = {
    'user' : 'root',
    'passwd' : 'password',
    'host' : 'localhost',
    'raise_on_warnings' : True,
    'use_pure' : False,
    'database' : 'opinions'
    }
con = mysql.connector.connect(**config)

这导致所有表引用都以 opinions 数据库中的表为目标。 然后,现有 表上的普通选择应该可以工作:

data = pd.read_sql('SELECT * FROM <some_table_name>', con)

关于mysql - 如何将 pandas 数据框作为表写入 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37671111/

相关文章:

mysql从一个表中取一行并从另一个表中减去多行

python - 如何将 unittest 子测试转换为 pytest

python - Pandas:使用 `sep` 和 `comment` 参数读取 CSV 文件时出错

python - Pandas - 识别每列唯一条目的百分比

Python OOP 继承 : Method Resolution Order (MRO)

使用 .iat 时出现 Python Pandas TypeError

用于 Ruby On Rails 的 MySQL Gem

mysql - 有没有办法在honysql select组件中使用SQL算术运算符?

java - com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException 不允许公钥检索

python - Django Rest Framework 测试 HyperlinkedRelatedField