? 作者:韓信子@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_1
和 col_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")
參考資料
- ? 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