Pandas 資料顯示不全?快來了解這些設定技巧! ⛵

使用者bPcV4sA發表於2022-11-23

? 作者:韓信子@ShowMeAI
? 資料分析實戰系列http://www.showmeai.tech/tutorials/40
? 本文地址http://www.showmeai.tech/article-detail/285
? 宣告:版權所有,轉載請聯絡平臺與作者並註明出處
? 收藏ShowMeAI檢視更多精彩內容

? Pandas 資料顯示的問題

我們在應用 Python 進行資料分析挖掘和機器學習時,最常用的工具庫就是 Pandas,它可以幫助我們快捷地進行資料處理和分析。

對 Pandas 不熟悉的同學,一定要學習下這個寶藏工具庫哦!ShowMeAI 給大家做了一個詳盡的教程,可以在 ? Python 資料分析教程 中檢視,我們同時也製作了 ? Pandas速查表,方便大家快速查詢需要的功能。如果你喜歡跟著影片學習,那麼推薦B站這個 ? 快速實戰教程

但在使用 Pandas 時,我們經常會遇到像下面這樣一些問題,它很影響我們檢視資料瞭解詳情。

? 長文字無法顯示全

對於非常長的欄位可能顯示不全,如下圖中,URL 被縮短顯示。

? 科學計數法顯示失去細節

Pandas 預設使用『科學計數法』顯示大浮點數,例如 1000000.5 顯示為 1.000e+06 。對於數值較大的數字,就可能有如下的顯示,這導致我們看不到具體數值。

? 小數位精度不一致

對於浮點型的欄位列,Pandas 可能有不同的位精度。例如下圖中,col_1 精確到小數點後一位,而 col_2 精確到小數點後三位。有時候精度的不一致可能會有資訊的差異。

在本篇內容中,ShowMeAI 將介紹如何使用 Pandas 自定義設定來解決諸如上述的問題。主要的設定包括下面內容:

  • 自定義要顯示的行數
  • 自定義要顯示的列數
  • 自定義列寬
  • 使浮點列之間的小數位精度保持一致
  • 禁用科學記數法
  • 其他用法
注意:以上設定僅更改資料的顯示呈現方式,實際並不會影響Dataframe儲存的資料。

? Pandas自定義顯示設定

? 自定義顯示行數

列印大 Dataframe(行列數很多的資料)時,Pandas 預設顯示前 5 行和後 5 行,如下圖所示。

我們可以透過設定顯示選項 display.max_rows 來更改要顯示的行數,比如我們將其設定為4。

pd.set_option("display.max_row", 4)
df

我們可以使用重置選項 pd.reset_option("display.max_rows") 恢復預設行數顯示設定。

? 自定義顯示列數

同樣的道理,我們可以透過設定 display.max_columns 自定義輸出 Dataframe 時要顯示的列數。

pd.set_option("display.max_columns", 6)
df

我們甚至可以設定 pd.set_option('display.max_columns',` `None) 來顯示所有列(但是大家需要注意一下記憶體使用,這個操作可能讓 Jupyter Notebook 一下佔用特別多資源)。

我們同樣可以使用 pd.reset_option("display.max_columns") 重置返回到預設設定。

? 自定義列寬

在下圖中,我們看不到前兩行的全文,因為它們的字元太長(長度超過了 50)。

我們把設定 display.max_colwidth調整到 70,就可以看到全文了,如下圖所示。

pd.set_option("display.max_colwidth", 70)
df

對這個設定重置的操作依舊是pd.reset_option("display.max_colwidth")

? 設定欄位小數位精度一致

前面提到的一個例子中,col_1col_2 的小數位精度不一致:

我們可以透過設定 display.float_format"{:.2f}".format 使格式一致,如下圖所示。

該選項只會影響浮點列,而不影響整數列。
pd.set_option("display.float_format", "{:.2f}".format)
df

對這個設定重置的操作是 pd.reset_option("display.float_format")

? 禁用科學計數法

Pandas 預設以科學計數法顯示較大的浮點值。

透過設定 display.float_format"{:,.2f}".format,我們可以為千位新增分隔符。

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

我們甚至可以新增貨幣符號在數值前面,比如我們把 display.float_format 設定為 "$ {:,.2f}".format,得到如下結果:

pd.set_option("display.float_format", "$ {:,.2f}".format)
df

? 其他設定

上面列到的是一些最常用的設定,如果我們記不住這些設定名稱,或者我們想了解全部可以調整的顯示設定,可以怎麼辦呢?實際上大家可以藉助pd.describe_option()獲得所有可用顯示設定的列表。

針針對某個特定的顯示設定,可以在 pd.describe_option()中傳入想調整的顯示設定名稱來獲取使用細節,例如我們執行pd.describe_option("max_rows")將列印描述 display.max_rows使用細節,如下圖所示。

pd.describe_option("max_rows")

參考資料

相關文章