核心 API

pandas 提供 5 个全局配置 API:get_option()、set_option()、reset_option()、describe_option()、option_context()。

1. get_option() — 获取选项值

import pandas as pd
 
pd.get_option('display.max_rows')       # 60
pd.get_option('display.max_columns')    # 20
pd.get_option('mode.copy_on_write')     # False

2. set_option() — 设置选项值

pd.set_option('display.max_columns', 50)
pd.set_option('display.precision', 4)
 
# 同时设置多个选项
pd.set_option('display.max_rows', 100, 'display.width', 120)

3. reset_option() — 重置为默认值

pd.reset_option('display.max_rows')       # 重置单个选项
pd.reset_option('display.max_columns')
 
pd.reset_option('^display\\.')            # 正则重置所有 display 选项
pd.reset_option('all')                    # 重置全部选项(会打印提示)
 
# 静默重置
with pd.option_context('mode.chained_assignment', None):
    pass
# 离开上下文后自动恢复

4. describe_option() — 查看选项说明

pd.describe_option('display.max_rows')    # 单个选项详情
pd.describe_option('mode')                # mode 类全部选项

输出内容包含:选项名、默认值、描述、适用数据类型 等。

5. option_context() — 上下文管理器(推荐)

临时修改选项,离开 with 块后自动恢复:

with pd.option_context('display.max_rows', 10, 'display.precision', 2):
    print(df)
 
# 退出上下文后恢复默认
print(df)

最佳实践

  • 在函数内部临时修改选项时,优先使用 option_context() 而非 set_option(),避免影响全局状态
  • option_context() 支持任意数量的「选项 = 值」对

组合示例

with pd.option_context(
    'display.max_columns', None,
    'display.max_rows', 5,
    'display.float_format', '{:,.2f}'.format,
    'mode.use_inf_as_na', True
):
    print(df.describe())

相关笔记