Pandas设置数据显示格式

 
在用 Pandas 做数据分析的过程中,总需要打印数据分析的结果,如果数据体量较大就会存在输出内容不全(部分内容省略)或者换行错误等问题。Pandas 为了解决上述问题,允许你对数据显示格式进行设置。下面列出了五个用来设置显示格式的函数,分别是:
  • get_option()
  • set_option()
  • reset_option()
  • describe_option()
  • option_context()

它们的功能介绍如下:

函数名称 说明
get_option 获取解释器的默认参数值。
set_option 更改解释器的默认参数值。
reset_option 解释器的参数重置为默认值。
describe_option 输出参数的描述信息。
option_context 临时设置解释器参数,当退出使用的语句块时,恢复为默认值。

下面对上述函数分别进行介绍。

get_option()

该函数接受单一参数,用来获取显示上限的行数或者列数,示例如下:

1) display.max_rows

获取显示上限的行数,示例如下:
import pandas as pd
print (pd.get_option("display.max_rows"))
输出结果:

60

2) display.max_columns

获取显示上限的列数,示例如下:
import pandas as pd
print (pd.get_option("display.max_columns"))
输出结果:

20

由此可知,默认值显示上限是(60,20)。

set_option()

该函数用来更改要默认显示的行数和列数,示例如下:

1) 修改默认行数

import pandas as pd
pd.set_option("display.max_rows",70)
print (pd.get_option("display.max_rows"))
输出结果:

70

2) 修改默认列数

import pandas as pd
pd.set_option("display.max_columns",40)
print (pd.get_option("display.max_columns"))
输出结果:

40

reset_option()

该方法接受一个参数,并将修改后的值设置回默认值。示例如下:
import pandas as pd
pd.reset_option("display.max_rows")
#恢复为默认值
print(pd.get_option("display.max_rows"))
输出结果:

60

describe_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() 上下文管理器,用于临时设置 with 语句块中的默认显示参数。当您退出 with 语句块时,参数值会自动恢复。示例如下:
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
60

注意:第一个 Print 语句打印 option_context() 设置的临时值。当退出 with 语句块时,第二个 Print 语句打印解释器默认值。

常用参数项

最后,对上述函数常用的参数项做以下总结:

参数 说明
display.max_rows 最大显示行数,超过该值用省略号代替,为None时显示所有行。
display.max_columns 最大显示列数,超过该值用省略号代替,为None时显示所有列。
display.expand_frame_repr 输出数据宽度超过设置宽度时,表示是否对其要折叠,False不折叠,True要折叠。
display.max_colwidth 单列数据宽度,以字符个数计算,超过时用省略号表示。
display.precision 设置输出数据的小数点位数。
display.width 数据显示区域的宽度,以总字符数计算。
display.show_dimensions 当数据量大需要以truncate(带引号的省略方式)显示时,该参数表示是否在最后显示数据的维数,默认 True 显示,False 不显示。

上述参数项,基本上可以满足我们的日常需求。