核心内容

通过 display.precision 与 display.float_format 控制浮点数的显示格式。

1. display.precision — 全局精度

import pandas as pd
import numpy as np
 
df = pd.DataFrame({
    'A': [1.23456789, 2.34567891],
    'B': [0.123456789, 9.87654321]
})
 
pd.set_option('display.precision', 3)
print(df)
#        A      B
# 0  1.235  0.123
# 1  2.346  9.877

注意

precision 只影响 显示,不会改变实际存储值(df['A'][0] 仍为 1.23456789)。

2. display.float_format — 自定义格式化函数

# 千分位 + 两位小数
pd.set_option('display.float_format', lambda x: f'{x:,.2f}')
 
# 百分比
pd.set_option('display.float_format', lambda x: f'{x:.2%}')
 
# 科学计数法
pd.set_option('display.float_format', lambda x: f'{x:.2e}')
 
# 恢复默认
pd.reset_option('display.float_format')

示例

df = pd.DataFrame({
    '销售额': [1234567.891, 2345678.912],
    '增长率': [0.1234, 0.5678]
})
 
with pd.option_context('display.float_format', lambda x: f'{x:,.2f}'):
    print(df)
#          销售额   增长率
# 0  1,234,567.89  0.12
# 1  2,345,678.91  0.57

3. 常见场景速查

场景设置
金融数据千分位lambda x: f'{x:,.2f}'
百分比lambda x: f'{x:.2%}'
隐藏小数pd.set_option('display.precision', 0)
科学计数lambda x: f'{x:.2e}'

性能提示

float_format 输出大型 DataFrame 时会逐元素调用格式化函数,可能影响性能。

相关笔记