python - Pandas 向 MySQL 中插入数据

标签 python python-2.7 pandas csv mysql-python

我正在尝试使用 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/

相关文章:

Python - 尝试计算 SSH std.out 中字符串的实例

python - 如何访问数据类型列表中元组中的数据

python - 使用西类牙凉菜汤和 Pandas 刮取时产量有限

python - Pandas groupby 和基于多列的转换

python - 根据现有列分配 True/False 条件

python - lxml:tostring 中的 Pretty_print 选项在换行符号后无法正常工作

python - 使用 pandas 修改捕获组

python - Python 哈希表中的元组与数组

django - AbstractUser Django 完整示例

python - Python2.7 无法升级到 pip 1.4.1