PAYATHON 2026

pandas 设置 display.max_rows 为 100 后为何只显示 10 行?

数据阿明

将 display.max_rows 和 display.min_rows 都设为 100,题目中有 1460 行的 DataFrame 就会在标准截断视图中显示首尾共 100 行数据。

import pandas as pd

pd.set_option('display.max_rows', 100)
pd.set_option('display.min_rows', 100)

print(df)

假设 DataFrame 的变量名为 df,输出会显示前 50 行和后 50 行,中间用省略号表示跳过的数据。省略号和列标题不计入这 100 行数据。

为什么原来只显示 10 行?

这两个选项控制不同的显示行为:

  • display.max_rows:决定何时触发行截断。总行数超过这个值时,进入截断视图。
  • display.min_rows:决定进入截断视图后保留多少行,默认值为 10。

你的 DataFrame 有 1460 行,超过了设置的 100 行,因此会进入截断视图。如果 display.min_rows 仍为默认值,就会显示开头 5 行和末尾 5 行。这与题目中的输出一致,说明 display.max_rows 已经参与了显示判断。相关规则见 pandas 显示选项文档。

将 display.max_rows 设为 None 后,显示行数不再受限制,因此可以看到所有行。

只对一次输出设置显示行数

如果只想临时查看这 100 行,可以使用 pd.option_context()。退出代码块后,选项会恢复原值:

with pd.option_context('display.max_rows', 100,
                       'display.min_rows', 100):
    print(df)

也可以让截断行数跟随 display.max_rows:

pd.set_option('display.max_rows', 100)
pd.set_option('display.min_rows', None)

display.min_rows=None 表示沿用 display.max_rows 的值,见 pandas 选项说明。

如果想看连续的前 100 行

首尾各 50 行适合查看整体概况。如果需要连续的前 100 行,可以先取出这些数据再显示:

with pd.option_context('display.max_rows', 100):
    print(df.head(100))

题目中的 DataFrame 有足够多的行,因此这里会显示连续的前 100 行。一般情况下,head(100) 最多返回 100 行。

仍然只显示 10 行时怎么排查?

先确认显示前的实际选项值:

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

如果两项都为 100,而界面仍只显示 10 行,可以用 print(df) 对照检查。IDE 的数据查看器或第三方表格组件可能有自己的显示限制,需要结合具体环境排查。

这些配置只改变显示方式,不会删除 DataFrame 中的数据。80 列是否全部显示由列相关选项控制;解决行数问题不需要依赖旧的 display.height。

备注:内容仅供参考。