Pandas 将数据插入 MySQL
Pandas Insert data into MySQL
我正在尝试使用 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 table。
如果您需要不同的列名,您需要重命名 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
这就是我在项目中所做的
import pandas as pd
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://root:@localhost/pd_test')
ratings = pd.read_csv('ratings2.csv', sep='\t', encoding='latin-1',
usecols=['user_id', 'movie_id', 'user_emb_id',
'movie_emb_id','rating'])
ratings.to_sql('test', con=engine, if_exists='append',index=False,chunksize=1)
希望对您有所帮助!!
我正在尝试使用 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 table。
如果您需要不同的列名,您需要重命名 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
这就是我在项目中所做的
import pandas as pd
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://root:@localhost/pd_test')
ratings = pd.read_csv('ratings2.csv', sep='\t', encoding='latin-1',
usecols=['user_id', 'movie_id', 'user_emb_id',
'movie_emb_id','rating'])
ratings.to_sql('test', con=engine, if_exists='append',index=False,chunksize=1)
希望对您有所帮助!!