<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>

          強(qiáng)烈推薦!8個(gè)讓 pandas 更高效的 option 設(shè)置

          共 4985字,需瀏覽 10分鐘

           ·

          2021-06-25 20:28

          通過(guò)pandas的使用,我們經(jīng)常要交互式地展示表格(dataframe)、分析表格。而表格的格式就顯得尤為重要了,因?yàn)榇蟛糠謺r(shí)候如果我們直接展示表格,格式并不是很友好。

          其實(shí)呢,這些痛點(diǎn)都可以通過(guò)pandasoption來(lái)解決。短短幾行代碼,只要提前配置好,一次設(shè)置好,全局生效,perfect!

          # 使用方法
          import pandas as pd
          pd.set_option()
          pd.get_option()

          # 使用屬性,例如展示的最大行數(shù)
          pd.option.display.max_rows

          東哥整理了8個(gè)常用的配置選項(xiàng),供大家參考。記住這8個(gè)option代碼,下次直接粘貼進(jìn)去,效率可以提高很多,爽歪歪。

          • 顯示更多行
          • 顯示更多列
          • 改變列寬
          • 設(shè)置float列的精度
          • 數(shù)字格式化顯示
          • 更改繪圖方法
          • 配置info()的輸出
          • 打印出當(dāng)前設(shè)置并重置所有選項(xiàng)

          1. 顯示更多行

          默認(rèn)情況下,pandas 是不超出屏幕的顯示范圍的,如果表的行數(shù)很多,它會(huì)截?cái)嘀虚g的行只顯示一部分。我們可以通過(guò)設(shè)置display.max_rows來(lái)控制顯示的最大行數(shù),比如我想設(shè)置顯示200行。

          pd.set_option('display.max_rows'200)
          # pd.options.display.max_rows = 200

          如果行數(shù)超過(guò)了display.max_rows,那么display.min_rows將確定顯示的部分有多少行。因?yàn)?code style="padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(89, 89, 89);font-size: 13px;letter-spacing: 0.5px;">display.min_rows的默認(rèn)行數(shù)為5,,下面例子只顯示前5行和最后5行,中間的所有行省略。

          同理,也可根據(jù)自己的習(xí)慣顯示可顯示的行數(shù),比如10, 20..

          pd.set_option('display.min_rows'10)
          # pd.options.display.min_rows = 10

          還可以直接重置。

          # 重置
          pd.reset_option('display.max_rows')

          2. 顯示更多列

          行可以設(shè)置,同樣的列也可以設(shè)置,display.max_columns控制著可顯示的列數(shù),默認(rèn)值為20。

          pd.get_option('display.max_columns'
          # pd.options.display.max_columns
          20

          3. 改變列寬

          pandas對(duì)列中顯示的字符數(shù)有一些限制,默認(rèn)值為50字符。所以,有的值字符過(guò)長(zhǎng)就會(huì)顯示省略號(hào)。如果想全部顯示,可以設(shè)置display.max_colwidth,比如設(shè)置成500。

          pd.set_option ('display.max_colwidth',500)
          # pd.options.display.max_colwidth = 500

          4. 設(shè)置float列的精度

          對(duì)于float浮點(diǎn)型數(shù)據(jù),pandas默認(rèn)情況下只顯示小數(shù)點(diǎn)后6位。我們可以通過(guò)預(yù)先設(shè)置display.precision讓其只顯示2位,避免后面重復(fù)操作。

          pd.set_option( 'display.precision',2)
          # pd.options.display.precision = 2

          這個(gè)設(shè)置不影響底層數(shù)據(jù),它只影響浮動(dòng)列的顯示。

          5. 數(shù)字格式化顯示

          pandas中有一個(gè)選項(xiàng)display.float_formatoption可以用來(lái)格式化任何浮點(diǎn)列。這個(gè)僅適用于浮點(diǎn)列,對(duì)于其他數(shù)據(jù)類(lèi)型,必須將它們轉(zhuǎn)換為浮點(diǎn)數(shù)才可以。

          用逗號(hào)格式化大值數(shù)字

          例如 1200000 這樣的大數(shù)字看起來(lái)很不方便,所以我們用逗號(hào)進(jìn)行分隔。

          pd.set_option('display.float_format','{:,}'.format)

          設(shè)置數(shù)字精度

          和上面display.precision有點(diǎn)類(lèi)似,假如我們只關(guān)心小數(shù)點(diǎn)后的2位數(shù)字,我們可以這樣設(shè)置格式化:

          pd.set_option('display.float_format',  '{:,.2f}'.format)

          百分號(hào)格式化

          如果我們要顯示一個(gè)百分比的列,可以這樣設(shè)置。

          pd.set_option('display.float_format''{:.2f}%'.format)

          或者其它幣種的符號(hào)等均可,只需要在大括號(hào){}前后添加即可。

          6. 更改繪圖方法

          默認(rèn)情況下,pandas使用matplotlib作為繪圖后端。從 0.25 版本開(kāi)始,pandas提供了使用不同后端選擇,比如plotlybokeh等第三方庫(kù),但前提是你需要先安裝起來(lái)。

          這個(gè)東哥之前也分享過(guò)設(shè)置后端可視化方法的內(nèi)容:再見(jiàn),可視化!你好,pandas!

          設(shè)置很簡(jiǎn)單,只要安裝好三方庫(kù)后,同樣只需要一行。

          import pandas as pd
          import numpy as np
          pd.set_option('plotting.backend''altair')
          data = pd.Series(np.random.randn(100).cumsum())
          data.plot()

          7. 配置info()的輸出

          pandas中我們經(jīng)常要使用info()來(lái)快速查看DataFrame的數(shù)據(jù)情況。但是,info這個(gè)方法對(duì)要分析的最大列數(shù)是有默認(rèn)限制的,并且如果數(shù)據(jù)集中有null,那么在大數(shù)據(jù)集計(jì)數(shù)統(tǒng)計(jì)時(shí)會(huì)非常慢。

          pandas提供了兩種選擇:

          • display.max_info_columns: 設(shè)置要分析的最大列數(shù),默認(rèn)為100。
          • display.max_info_rows: 設(shè)置計(jì)數(shù)null時(shí)的閾值,默認(rèn)為1690785。

          比如,在分析有 150 個(gè)特征的數(shù)據(jù)集時(shí),我們可以設(shè)置display.max_info_columns為涵蓋所有列的值,比如將其設(shè)置為 200:

          pd.set_option('display.max_info_columns'200)

          在分析大型數(shù)據(jù)集時(shí),df.info()由于要計(jì)算所有null,導(dǎo)致速度很慢。因此我們可以簡(jiǎn)單地設(shè)置display.max_info_rows為一個(gè)小的值來(lái)避免計(jì)數(shù),例如只在行數(shù)不超過(guò)5時(shí)才計(jì)數(shù)null

          pd.set_option('display.max_info_rows', 5)

          8. 打印出當(dāng)前設(shè)置并重置所有選項(xiàng)

          pd.describe_option()將打印出設(shè)置的描述及其當(dāng)前值。

          pd.describe_option()

          還可以打印特定的選項(xiàng),例如,行顯示。

          # 具體的搜索
          pd.describe_option('rows')

          最后,我們還可以直接全部重置。

          pd.reset_option('all')

          以上就是8個(gè)常用set_option的使用,下面進(jìn)行了匯總,方便大家粘貼使用。

          pd.set_option('display.max_rows',xxx) # 最大行數(shù)
          pd.set_option('display.min_rows',xxx) # 最小顯示行數(shù)
          pd.set_option('display.max_columns',xxx) # 最大顯示列數(shù)
          pd.set_option ('display.max_colwidth',xxx) #最大列字符數(shù)
          pd.set_option( 'display.precision',2# 浮點(diǎn)型精度
          pd.set_option('display.float_format','{:,}'.format) #逗號(hào)分隔數(shù)字
          pd.set_option('display.float_format',  '{:,.2f}'.format) #設(shè)置浮點(diǎn)精度
          pd.set_option('display.float_format''{:.2f}%'.format) #百分號(hào)格式化
          pd.set_option('plotting.backend''altair'# 更改后端繪圖方式
          pd.set_option('display.max_info_columns'200# info輸出最大列數(shù)
          pd.set_option('display.max_info_rows'5# info計(jì)數(shù)null時(shí)的閾值
          pd.describe_option() #展示所有設(shè)置和描述
          pd.reset_option('all'#重置所有設(shè)置選項(xiàng)

          原創(chuàng)不易,歡迎點(diǎn)贊、留言、分享,支持我繼續(xù)寫(xiě)下去。

          參考:

          [1] https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html

          [2] https://towardsdatascience.com/8-commonly-used-pandas-display-options-you-should-know-a832365efa95




          推薦閱讀:

          入門(mén): 最全的零基礎(chǔ)學(xué)Python的問(wèn)題  | 零基礎(chǔ)學(xué)了8個(gè)月的Python  | 實(shí)戰(zhàn)項(xiàng)目 |學(xué)Python就是這條捷徑


          干貨:爬取豆瓣短評(píng),電影《后來(lái)的我們》 | 38年NBA最佳球員分析 |   從萬(wàn)眾期待到口碑撲街!唐探3令人失望  | 笑看新倚天屠龍記 | 燈謎答題王 |用Python做個(gè)海量小姐姐素描圖 |碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影


          趣味:彈球游戲  | 九宮格  | 漂亮的花 | 兩百行Python《天天酷跑》游戲!


          AI: 會(huì)做詩(shī)的機(jī)器人 | 給圖片上色 | 預(yù)測(cè)收入 | 碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影


          小工具: Pdf轉(zhuǎn)Word,輕松搞定表格和水印! | 一鍵把html網(wǎng)頁(yè)保存為pdf!|  再見(jiàn)PDF提取收費(fèi)! | 用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換 | 制作一款釘釘?shù)蛢r(jià)機(jī)票提示器! |60行代碼做了一個(gè)語(yǔ)音壁紙切換器天天看小姐姐!


          年度爆款文案


          點(diǎn)閱讀原文,領(lǐng)廖雪峰資料!

          瀏覽 21
          點(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>
                  日本欧美黄色 | 免费看欧美操逼 | 苍井空一区二区三区四区五区 | 久久1234 | 91美女裸体 |