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。
备注:内容仅供参考。
