[英]Write pandas dataframe to MySQL
我這里有一些奇怪的問題並卡住了。 我正在重寫生成一些CSV文件的python腳本,並且需要在MySQL服務器上寫入相同的信息。
我設法使其正常工作。
這是創建CSV的部分:
final_table.get_tunid_town_pivot().to_csv('result_pivot_tunid_town_' + ConsoleLog.get_curr_date_underline() + '.csv', sep=';')
這是將數據加載到MySQL表中的部分:
conn = pymysql.connect(host='localhost', port=3306, user='test', passwd='test', db='test')
final_table.get_tunid_town_pivot().to_sql(con=conn, name='TunID', if_exists='replace', flavor='mysql', index=False, chunksize=10000)
conn.close()
問題是數據幀中有4列,但是在MySQL中,我僅得到最后一列。 我不知道為什么會這樣,我發現了零個類似的問題。 有什么幫助嗎?
您的DataFrame具有(可能是由於旋轉)3級和1列的MultiIndex。 默認情況下, to_sql
也會將索引寫入SQL表,但是您確實指定了index=False
,因此只有一列將被寫入SQL。
因此,要么不指定不包含索引(使用index=True
),要么重置索引並寫入幀,然后( df.reset_index().to_sql(..., index=False)
)。
還要注意,不建議在to_sql
中使用pymysql連接(它會警告您),您必須通過SQLAlchemy引擎使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.