我正在尝试使用 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')
但是,它没有提到表1中的具体列名..
我们如何表达?
最佳答案
我认为你的代码应该是这样的
import pandas as pd
from pandas.io import sql
from sqlalchemy import create_engine
df = pd.read_csv('File.csv', usercols=['ID', 'START_DATE'], skiprows=skip)
print(df)
engine = create_engine('mysql://username:password@localhost/dbname')
with engine.connect() as conn, conn.begin():
df.to_sql('Table1', conn, if_exists='replace')
但是,关于你的问题,除非我对 Pandas 的理解有误,否则无论 df
目前有什么列,它们都将被写入 mysql 表的同名列。
如果您需要不同的列名,您需要重命名 DataFrame 中的那些
或者使用the parameters, as mentioned ,
index : boolean, default True
Write DataFrame index as a column.index_label : string or sequence, default None
Column label for index column(s). If None is given (default) and index is True, then the index names are used
关于python - Pandas 向 MySQL 中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45288598/