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の特定の列名については触れていません。
それをどのように表現しますか?
あなたのコードはこのように読むべきだと思います
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')
しかし、あなたの質問に関して、私がパンダを理解していると誤解しない限り、現在の列df
が何であれ、それらはmysqlテーブルの同じ名前の列に書き込まれます。
別の列名が必要な場合は、DataFrame内の列名を変更する必要があります
または 前述のパラメータ を使用します
index:ブール値、デフォルトはTrue
DataFrameインデックスを列として書き込みます。index_label:文字列またはシーケンス、デフォルトはなし
インデックス列の列ラベル。 Noneが指定され(デフォルト)、indexがTrueの場合、インデックス名が使用されます
これは私のプロジェクトでやったことです
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)
この助けを願っています!!