<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          5種常用格式的數(shù)據(jù)輸出,手把手教你用Pandas實(shí)現(xiàn)

          共 4289字,需瀏覽 9分鐘

           ·

          2022-04-26 07:58

          導(dǎo)讀:任何原始格式的數(shù)據(jù)載入DataFrame后,都可以使用類似DataFrame.to_csv()的方法輸出到相應(yīng)格式的文件或者目標(biāo)系統(tǒng)里。本文將介紹一些常用的數(shù)據(jù)輸出目標(biāo)格式。


          作者:李慶輝
          來(lái)源:大數(shù)據(jù)DT(ID:hzdashuju)




          01 CSV

          DataFrame.to_csv方法可以將DataFrame導(dǎo)出為CSV格式的文件,需要傳入一個(gè)CSV文件名。

          df.to_csv('done.csv')
          df.to_csv('data/done.csv'# 可以指定文件目錄路徑
          df.to_csv('done.csv', index=False# 不要索引

          另外還可以使用sep參數(shù)指定分隔符,columns傳入一個(gè)序列指定列名,編碼用encoding傳入。如果不需要表頭,可以將header設(shè)為False。如果文件較大,可以使用compression進(jìn)行壓縮:

          # 創(chuàng)建一個(gè)包含out.csv的壓縮文件out.zip
          compression_opts = dict(method='zip',
                                  archive_name='out.csv')  
          df.to_csv('out.zip', index=False,
                    compression=compression_opts)  


          02 Excel

          將DataFrame導(dǎo)出為Excel格式也很方便,使用DataFrame.to_excel方法即可。要想把DataFrame對(duì)象導(dǎo)出,首先要指定一個(gè)文件名,這個(gè)文件名必須以.xlsx或.xls為擴(kuò)展名,生成的文件標(biāo)簽名也可以用sheet_name指定。

          如果要導(dǎo)出多個(gè)DataFrame到一個(gè)Excel,可以借助ExcelWriter對(duì)象來(lái)實(shí)現(xiàn)。

          # 導(dǎo)出,可以指定文件路徑
          df.to_excel('path_to_file.xlsx')
          # 指定sheet名,不要索引
          df.to_excel('path_to_file.xlsx', sheet_name='Sheet1', index=False)
          # 指定索引名,不合并單元格
          df.to_excel('path_to_file.xlsx', index_label='label', merge_cells=False)

          多個(gè)數(shù)據(jù)的導(dǎo)出如下:

          # 將多個(gè)df分不同sheet導(dǎo)入一個(gè)Excel文件中
          with pd.ExcelWriter('path_to_file.xlsx'as writer:
              df1.to_excel(writer, sheet_name='Sheet1')
              df2.to_excel(writer, sheet_name='Sheet2')

          使用指定的Excel導(dǎo)出引擎如下:

          # 指定操作引擎
          df.to_excel('path_to_file.xlsx', sheet_name='Sheet1', engine='xlsxwriter')
          # 在'engine'參數(shù)中設(shè)置ExcelWriter使用的引擎
          writer = pd.ExcelWriter('path_to_file.xlsx', engine='xlsxwriter')
          df.to_excel(writer)
          writer.save()

          # 設(shè)置系統(tǒng)引擎
          from pandas import options  # noqa: E402
          options.io.excel.xlsx.writer = 'xlsxwriter'
          df.to_excel('path_to_file.xlsx', sheet_name='Sheet1')


          03 HTML

          DataFrame.to_html會(huì)將DataFrame中的數(shù)據(jù)組裝在HTML代碼的table標(biāo)簽中,輸入一個(gè)字符串,這部分HTML代碼可以放在網(wǎng)頁(yè)中進(jìn)行展示,也可以作為郵件正文。

          print(df.to_html())
          print(df.to_html(columns=[0])) # 輸出指定列
          print(df.to_html(bold_rows=False)) # 表頭不加粗
          # 表格指定樣式,支持多個(gè)
          print(df.to_html(classes=['class1''class2']))


          04 數(shù)據(jù)庫(kù)(SQL)

          將DataFrame中的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)的對(duì)應(yīng)表中:

          # 需要安裝SQLAlchemy庫(kù)
          from sqlalchemy import create_engine
          # 創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象,SQLite內(nèi)存模式
          engine = create_engine('sqlite:///:memory:')
          # 取出表名為data的表數(shù)據(jù)
          with engine.connect() as conn, conn.begin():
              data = pd.read_sql_table('data', conn)

          # data
          # 將數(shù)據(jù)寫(xiě)入
          data.to_sql('data', engine)
          # 大量寫(xiě)入
          data.to_sql('data_chunked', engine, chunksize=1000)
          # 使用SQL查詢
          pd.read_sql_query('SELECT * FROM data', engine)


          05 Markdown

          Markdown是一種常用的技術(shù)文檔編寫(xiě)語(yǔ)言,Pandas支持輸出Markdown格式的字符串,如下:

          print(cdf.to_markdown())

          '''
          |    |   x |   y |   z |
          |:---|----:|----:|----:|
          | a  |   1 |   2 |   3 |
          | b  |   4 |   5 |   6 |
          | c  |   7 |   8 |   9 |
          '''



          小結(jié)

          本文介紹了如何將DataFrame對(duì)象數(shù)據(jù)進(jìn)行輸出,數(shù)據(jù)經(jīng)輸出、持久化后會(huì)成為固定的數(shù)據(jù)資產(chǎn),供我們進(jìn)行歸檔和分析。

          關(guān)于作者:李慶輝,數(shù)據(jù)產(chǎn)品專家,某電商公司數(shù)據(jù)產(chǎn)品團(tuán)隊(duì)負(fù)責(zé)人,擅長(zhǎng)通過(guò)數(shù)據(jù)治理、數(shù)據(jù)分析、數(shù)據(jù)化運(yùn)營(yíng)提升公司的數(shù)據(jù)應(yīng)用水平。精通Python數(shù)據(jù)科學(xué)及Python Web開(kāi)發(fā),曾獨(dú)立開(kāi)發(fā)公司的自動(dòng)化數(shù)據(jù)分析平臺(tái),參與教育部“1+X”數(shù)據(jù)分析(Python)職業(yè)技能等級(jí)標(biāo)準(zhǔn)評(píng)審。中國(guó)人工智能學(xué)會(huì)會(huì)員,企業(yè)數(shù)字化、數(shù)據(jù)產(chǎn)品和數(shù)據(jù)分析講師,在個(gè)人網(wǎng)站“蓋若”上編寫(xiě)的技術(shù)和產(chǎn)品教程廣受歡迎。

          本書(shū)摘編自《深入淺出Pandas:利用Python進(jìn)行數(shù)據(jù)處理與分析》,機(jī)械工業(yè)出版社華章公司2021年出版。轉(zhuǎn)載請(qǐng)與我們?nèi)〉檬跈?quán)。

          延伸閱讀深入淺出Pandas
          點(diǎn)擊上圖了解及購(gòu)買(mǎi)
          轉(zhuǎn)載請(qǐng)聯(lián)系微信:DoctorData

          推薦語(yǔ):這是一本全面覆蓋了Pandas使用者的普遍需求和痛點(diǎn)的著作,基于實(shí)用、易學(xué)的原則,從功能、使用、原理等多個(gè)維度對(duì)Pandas做了全方位的詳細(xì)講解,既是初學(xué)者系統(tǒng)學(xué)習(xí)Pandas難得的入門(mén)書(shū),又是有經(jīng)驗(yàn)的Python工程師案頭必不可少的查詢手冊(cè)?!独肞ython進(jìn)行數(shù)據(jù)分析》學(xué)習(xí)伴侶,用好Python必備。


          直播預(yù)告??


          干貨直達(dá)??


          更多精彩??

          在公眾號(hào)對(duì)話框輸入以下關(guān)鍵詞
          查看更多優(yōu)質(zhì)內(nèi)容!

          讀書(shū) | 書(shū)單 | 干貨 | 講明白 | 神操作 | 手把手
          大數(shù)據(jù) | 云計(jì)算 | 數(shù)據(jù)庫(kù) | Python | 爬蟲(chóng) | 可視化
          AI | 人工智能 | 機(jī)器學(xué)習(xí) | 深度學(xué)習(xí) | NLP
          5G | 中臺(tái) | 用戶畫(huà)像 數(shù)學(xué) | 算法 數(shù)字孿生

          據(jù)統(tǒng)計(jì),99%的大咖都關(guān)注了這個(gè)公眾號(hào)
          ??
          瀏覽 18
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  69.成人免费电影 | 日韩性爱视频网站 | 啪视频在线观看 | 天天综合天天做 | 蜜桃传媒在线一二三区 |