Pandas選項和自定義


Pandas提供API來自定義其行為的某些方面,大多使用來顯示。

API由五個相關函式組成。它們分別是 -

  • get_option()
  • set_option()
  • reset_option()
  • describe_option()
  • option_context()

現在來瞭解函式是如何工作的。

get_option(param)

get_option(param)需要一個引數,並返回下面輸出中給出的值 -

get_option需要一個引數,並返回下面輸出中給出的值 -

display.max_rows

顯示預設值。直譯器讀取此值並顯示此值作為顯示上限的行。

import pandas as pd
print ("display.max_rows = ", pd.get_option("display.max_rows"))

執行上面範例程式碼,得到以下結果 -

display.max_rows =  60

display.max_columns

顯示預設值,直譯器讀取此值並顯示此值作為顯示上限的行。

import pandas as pd
print ("display.max_columns = ", pd.get_option("display.max_columns"))

執行上面範例程式碼,得到以下結果 -

display.max_columns =  20

這裡,6020是預設組態引數值。

set_option(param,value)

set_option需要兩個引數,並將該值設定為指定的引數值,如下所示:

display.max_rows

使用set_option(),可以更改要顯示的預設行數。

import pandas as pd

print ("before set display.max_rows = ", pd.get_option("display.max_rows")) 

pd.set_option("display.max_rows",80)
print ("after set display.max_rows = ", pd.get_option("display.max_rows"))

執行上面範例程式碼,得到以下結果 -

before set display.max_rows =  60
after set display.max_rows =  80

display.max_columns

使用set_option(),可以更改要顯示的預設行數。

import pandas as pd

print ("before set display.max_columns = ", pd.get_option("display.max_columns")) 

pd.set_option("display.max_columns",32)
print ("after set display.max_columns = ", pd.get_option("display.max_columns"))

執行上面範例程式碼,得到以下結果 -

before set display.max_columns =  20
after set display.max_columns =  32

reset_option(param)

reset_option接受一個引數,並將該值設定為預設值。

display.max_rows

使用reset_option(),可以將該值更改回顯示的預設行數。

import pandas as pd

pd.set_option("display.max_rows",32)
print ("after set display.max_rows = ", pd.get_option("display.max_rows")) 

pd.reset_option("display.max_rows")
print ("reset display.max_rows = ", pd.get_option("display.max_rows"))

執行上面範例程式碼,得到以下結果 -

after set display.max_rows =  32
reset display.max_rows =  60

describe_option(param)

describe_option列印引數的描述。

display.max_rows

使用reset_option(),可以將該值更改回顯示的預設行數。

import pandas as pd

pd.describe_option("display.max_rows")

執行上面範例程式碼,得到以下結果 -

display.max_rows : int
    If max_rows is exceeded, switch to truncate view. Depending on
    `large_repr`, objects are either centrally truncated or printed as
    a summary view. 'None' value means unlimited.

    In case python/IPython is running in a terminal and `large_repr`
    equals 'truncate' this can be set to 0 and pandas will auto-detect
    the height of the terminal and print a truncated object which fits
    the screen height. The IPython notebook, IPython qtconsole, or
    IDLE do not run in a terminal and hence it is not possible to do
    correct auto-detection.
    [default: 60] [currently: 60]

option_context()

option_context上下文管理器用於臨時設定語句中的選項。當退出使用塊時,選項值將自動恢復 -

display.max_rows
使用option_context(),可以臨時設定該值。

import pandas as pd
with pd.option_context("display.max_rows",10):
   print(pd.get_option("display.max_rows"))
   print(pd.get_option("display.max_rows"))

執行上面範例程式碼,得到以下結果 -

10
10

請參閱第一和第二個列印語句之間的區別。第一個語句列印由option_context()設定的值,該值在上下文中是臨時的。在使用上下文之後,第二個列印語句列印組態的值。

常用引數,請參考下表 -

編號 引數 描述
1 display.max_rows 要顯示的最大行數
2 display.max_columns 要顯示的最大列數
3 display.expand_frame_repr 顯示資料影格以拉伸頁面
4 display.max_colwidth 顯示最大列寬
5 display.precision 顯示十進位制數的精度