如何使用executemany python在mysql中插入整个数据帧

时间:2018-02-14 14:19:09

标签: python python-3.x

如何使用executemany

一次在我的mysql数据库中插入newDF
x=[
    [[3141],[3141],[3169],[3251],[3285],[3302]],
    [[5000],[3141],[3169],[3251],[3285],[3302]]
]

y=[
    [[5],[7],[5],[2],[3],[8]],
    [[6],[5],[6],[5],[3],[6]]
]
newDF=pd.DataFrame()
newDF[['x']]=x
newDF[['y']]=y`
sql = "INSERT INTO new_table (`x`,`y`) VALUES (?,?)" number_of_rows = cursor.executemany(sql,list(np.int64(newDF)))

1 个答案:

答案 0 :(得分:1)

我不熟悉executemany。但是,我已经成功使用了pandas.dataframe.to_sql。你可以找到here。就我而言,我使用sqlalchemy和pymysql库来实现这一目标。

这不是真正的代码,但应该是一个合理的大纲;将m视为数据帧:

import numpy as np
import pandas as pd
import pymysql as mysql
import sqlalchemy
from sqlalchemy import create_engine
from pandas.io import sql

engine=create_engine('mysql+pymysql://username:password@host:port/db_name')
m.to_sql('table_name', engine, if_exists='append')