use*_*650 11 mysql-python pandas
我有一个关于如何将数据帧保存到本地mysql的问题.
import MySQLdb
import pandas as pd
conn=MySQLdb.connect(host="localhost",user='root',passwd="matt123",db="ada")
df=pd.DataFrame(['A','B'],columns=['new_tablecol'])
df.to_sql(name='new_table',con=conn,if_exists='append')
Run Code Online (Sandbox Code Playgroud)
输入此代码后,它说
pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': not all arguments converted during string formatting
Run Code Online (Sandbox Code Playgroud)
我对此很困惑.我可以查询和创建表.但是我无法保存这个数据帧.
Jam*_*mes 15
你的方式不再受支持了.
con: SQLAlchemy引擎或DBAPI2连接(传统模式)
使用SQLAlchemy可以使用该库支持的任何数据库.如果是DBAPI2对象,则仅支持sqlite3.
flavor: 'sqlite',默认无
从版本0.19.0开始不推荐使用:如果不使用SQLAlchemy,则'sqlite'是唯一受支持的选项.
试试这个?
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine("mysql://root:matt123@localhost/ada")
con = engine.connect()
df = pd.DataFrame(['A','B'],columns=['new_tablecol'])
df.to_sql(name='new_table',con=con,if_exists='append')
con.close()
Run Code Online (Sandbox Code Playgroud)
语法是:
engine = create_engine("mysql://USER:PASSWORD@HOST/DATABASE")
Run Code Online (Sandbox Code Playgroud)
更多相关信息sqlalchemy,可以发现这里
| 归档时间: |
|
| 查看次数: |
11755 次 |
| 最近记录: |