【发布时间】:2017-12-30 12:17:38
【问题描述】:
我正在尝试使用 Pandas (Python) 将从 .csv 文件中提取的数据列插入 MySQL。
这是我目前的代码。
import pandas as pd
from pandas.io import sql
from sqlalchemy import create_engine
engine = create_engine('mysql://username:password@localhost/dbname')
with engine.connect() as conn, conn.begin():
df = pd.read_csv('File.csv', usercols=['ID', 'START_DATE'], skiprows=skip)
print(df)
df.to_sql(con=con, name='Table1', if_exists='replace', flavor='mysql')
但是,它没有提到Table1中的具体列名..
我们如何表达?
【问题讨论】:
-
您的问题中的代码有什么作用?它在语法上不正确。
-
DataFrame.to_sql... 示例在文档中。 pandas.pydata.org/pandas-docs/stable/io.html#io-sql -
@cricket_007 我添加了几行(上图)。我要做的是将csv文件('ID'和'START_DATE'列)中的数据插入Table1。
-
sql.write_frame 不正确。你为什么要这么做?看起来您完全缺少一个 SQLalchemy 连接对象,因此即使在触摸您的 csv 文件之前也要让它工作。您也不需要在写入之前将表读取到数据框
-
@cricket_007 我修改了上面的代码。到目前为止,它工作正常,因为代码没有错误,并且它按预期从 csv 文件打印数据。现在,我该如何表达,以便可以将来自 csv 文件(df 对象)的数据插入 MySQL 表('Table1')的特定列中?
标签: python python-2.7 pandas csv mysql-python