6. pandas选项和自定义

假设一个DataFrame有1000行,100个列,那么当你使用print语句输出DataFrame时,会输出全部的数据么?答案是不会的,这样做毫无意义,那么默认会输出多少行数据,多少列数据呢?pandas对于这类设置专门提供了查看和配置的方法,他们分别是:

  1. get_option
  2. set_option
  3. reset_option
  4. describe_option
  5. option_context

常用的配置项如下

编号 参数 描述
1 display.max_rows 要显示的最大行数
2 display.max_columns 要显示的最大列数
3 display.expand_frame_repr 显示数据帧以拉伸页面
4 display.max_colwidth 显示最大列宽
5 display.precision 显示十进制数的精度

1. get_option

想要知道display.max_rows的值是多少,需要使用get_option方法

import pandas as pd

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

程序输出结果

display.max_rows =  60

2. set_option

修改选项配置,使用set_option方法

import pandas as pd

pd.set_option('display.max_rows', 20)
print("display.max_rows = ", pd.get_option("display.max_rows"))

程序输出结果

display.max_rows =  20

3. reset_option

reset_option方法将选项恢复成原来的默认值

import pandas as pd

pd.set_option('display.max_rows', 20)
print("display.max_rows = ", pd.get_option("display.max_rows"))

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

程序输出结果

display.max_rows =  20
display.max_rows =  60

4. describe_option

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]

5. option_context

option_context是上下文管理器,用于临时设置语句中的选项,退出上下文管理器时,选项值自动回复

import pandas as pd

with pd.option_context('display.max_rows', 20):
    print(pd.get_option('display.max_rows'))

print(pd.get_option('display.max_rows'))

程序输出结果

20
60

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案