您好,登錄后才能下訂單哦!
目的
在數據分析時,我們有中間結果,或者最終的結果,需要保存到數據庫中;或者我們有一個中間的結果,如果放到數據庫中通過sql操作會更加的直觀,處理后再將結果讀取到DataFrame中。這兩個場景,就需要用到DataFrame的to_sql操作。
具體的操作
連接數據庫代碼
import pandas as pd from sqlalchemy import create_engine # default engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_learn') original_data = pd.read_sql_table('cellfee', engine) original_data
結果如下所示。
對數據進行匯總,每個小區的電費進行求和放到Series中,然后將所有小區的總電費放到DataFrame中,最后將DataFrame保存到數據庫中,代碼如下所示。
all_cells = [] for k, v in original_data.groupby(by=['cityid', 'cellid']): onecell = pd.Series(data=[k[0], k[1], v['fee'].sum()], index=['cityid', 'cellid', 'fee_sum']) all_cells.append(onecell) all_cells = pd.DataFrame(all_cells) all_cells.to_sql(name='cells_fee', con=engine, chunksize=1000, if_exists='replace', index=None)
對于DataFrame的to_sql函數,需要注意的參數在代碼中已經寫出來,其中比較重要的是chunksize、if_exists和index。
chunksize可以設置一次入庫的大小;if_exists設置如果數據庫中存在同名表怎么辦,‘replace'表示將表原來數據刪除放入當前數據;‘append'表示追加;‘fail'則表示將拋出異常,結束操作,默認是‘fail';index=接受boolean值,表示是否將DataFrame的index也作為表的列存儲。
最終存表的結果如下圖所示。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。