有没有办法在交互式或脚本执行模式下扩大输出显示?
具体来说,我在Pandas dataframe
上使用describe()函数 . 当 dataframe
是5列(标签)宽时,我得到了我想要的描述性统计数据 . 但是,如果 dataframe
有更多列,则会抑制统计信息并返回类似这样的内容:
>> Index: 8 entries, count to max
>> Data columns:
>> x1 8 non-null values
>> x2 8 non-null values
>> x3 8 non-null values
>> x4 8 non-null values
>> x5 8 non-null values
>> x6 8 non-null values
>> x7 8 non-null values
无论是否有6列或7列,都给出“8”值 . “8”是指什么?
我已经尝试将IDLE窗口拖大,以及增加“配置IDLE”宽度选项,但无济于事 .
我使用Pandas和describe()的目的是避免使用像 STATA 这样的第二个程序来进行基本的数据操作和调查 .
Python / IDLE 2.7.3
熊猫0.8.1
记事本6.1.4(UNICODE)
Windows Vista SP2
12 回答
作为@bmu mentioned,pandas会自动检测(默认情况下)显示区域的大小,当对象repr不适合显示时,将使用摘要视图 . 你提到调整IDLE窗口的大小,没有效果 . 如果你这样做
print df.describe().to_string()
它是否适合IDLE窗口?终端大小由
pandas.util.terminal.get_terminal_size()
确定,这将返回包含显示的(width, height)
的元组 . 输出是否与IDLE窗口的大小相匹配?可能存在问题(在emacs中运行终端之前有一个问题) .请注意,可以绕过自动检测,如果行数,列数不超过给定限制,
pandas.set_printoptions(max_rows=200, max_columns=10)
将永远不会切换到摘要视图 .Update: Pandas 0.11.0 onwards
pandas.set_printoptions(...)
已弃用 . 相反,请使用pandas.set_option
. 喜欢:这是help for set_option:
试试这个:
从文档:
见:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.set_option.html
如果要临时设置选项以显示一个大型DataFrame,可以使用option_context:
退出
with
块时会自动恢复选项值 .使用以下方法设置列最大宽
此特定语句将每列的最大宽度设置为800px .
您可以使用
set_printoptions
调整pandas打印选项 .但是,这并不适用于所有情况,因为pandas会检测到您的控制台宽度,如果输出适合控制台,它将只使用
to_string
(请参阅set_printoptions
的文档字符串) . 在这种情况下,您可以显式调用to_string
作为BrenBarn的答案 .Update
对于版本0.10,打印宽数据帧的方式changed:
此外,用于设置pandas选项的API已更改:
您可以将输出显示设置为与当前终端宽度匹配:
您可以使用
print df.describe().to_string()
强制它显示整个表格 . (对于任何DataFrame,您都可以使用to_string()
.describe
的结果只是一个DataFrame本身 . )8是DataFrame中持有"description"的行数(因为
describe
计算8个统计数据,min,max,mean等) .只使用这三条线为我工作:
Anaconda / Python 3.6.5 / pandas:0.23.0 / Visual Studio Code 1.26
根据docs for v0.18.0,如果你是一个2-liner,让Pandas自动检测你的屏幕宽度,并在飞行中适应它显示的列数:
似乎以上所有答案都解决了这个问题 . 还有一点:代替
pd.set_option('option_name')
,你可以使用(自动完成)见Pandas doc: Options and Settings:
在[2]中:pd.options.display.max_rows
出[2]:15
在[3]中:pd.options.display.max_rows = 999
在[4]中:pd.options.display.max_rows
出[4]:999
[...]
对于
max_...
参数:对于
width
param:我用过这些设置当数据规模很大时 .
你可以参考文档here
输出: