程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Pandas data display incomplete?Come learn these setup tips!

編輯:Python

作者: 韓信子@ 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 .對於數值較大的數字,就可能有如下的顯示,這導致我們看不到具體數值.

![]( https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/819205584b074b558ca619e354eaa04c~tplv-k3u1fbpfcp-zoom-1.image" width=“30%” referrerpolicy=“no-referrer”>

小數位精度不一致

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

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

  • 自定義要顯示的行數
  • 自定義要顯示的列數
  • 自定義列寬
  • 使浮點列之間的小數位精度保持一致
  • 禁用科學記數法
  • 其他用法

注意:以上設置僅更改數據的顯示呈現方式,實際並不會影響Dataframe存儲的數據.

Pandas自定義顯示設置

自定義顯示行數

打印大 Dataframe(行列數很多的數據)時,Pandas 默認顯示前 5 行和後 5 行,如下圖所示.

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

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

  • 1.
  • 2.

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

自定義顯示列數

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

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

  • 1.
  • 2.

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

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

自定義列寬

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

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

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

  • 1.
  • 2.

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

設置字段小數位精度一致

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

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

該選項只會影響浮點列,而不影響整數列.

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

  • 1.
  • 2.

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

禁用科學計數法

Pandas 默認以科學計數法顯示較大的浮點值.

通過設置 display.float_format"{:,.2f}".format,我們可以為千位添加分隔符.

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

  • 1.
  • 2.

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

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

  • 1.
  • 2.

其他設置

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

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

pd.describe_option("max_rows")

  • 1.

參考資料

  • Pandas 設置選項:  https://pandas.pydata.org/docs/user_guide/options.html
  • Python 數據分析教程:  http://www.showmeai.tech/tutorials/33
  • Pandas速查表: http://www.showmeai.tech/article-detail/101
  • Pandas 快速實戰教程:  https://www.bilibili.com/video/BV1M64y187bz


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved