簡體   English   中英

將Pandas DataFrame寫入MySQL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM