我在查看以下DataFrame
时遇到问题:
n = 100
foo = DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)
foo
问题是它不会在ipython笔记本中默认打印所有行,但我必须切片才能查看生成的行。即使以下选项也不会更改输出:
pd.set_option('display.max_rows', 500)
有谁知道如何显示整个阵列?
答案 0 :(得分:131)
对于版本0.11.0,您需要同时更改display.height
和display.max_rows
。
pd.set_option('display.height', 500)
pd.set_option('display.max_rows', 500)
答案 1 :(得分:17)
就个人而言,我喜欢直接使用赋值语句设置选项,因为通过iPython可以很容易地通过选项卡完成找到它们。我发现很难记住确切的选项名称是什么,所以这种方法对我有用。
例如,我必须记住的是它以pd.options
pd.options.<TAB>
大多数选项都在display
pd.options.display.<TAB>
从这里开始,我通常输出当前值如下:
pd.options.display.max_rows
60
然后我把它设置为我想要的:
pd.options.display.max_rows = 100
此外,您应该了解选项的上下文管理器,它会临时设置代码块中的选项。将选项名称作为字符串传递,后跟您希望的值。您可以在同一行中传递任意数量的选项:
with pd.option_context('display.max_rows', 100, 'display.max_columns', 10):
some pandas stuff
您还可以将选项重置为默认值,如下所示:
pd.reset_option('display.max_rows')
然后重置所有这些:
pd.reset_option('all')
通过pd.set_option
设置选项仍然非常好。我发现直接使用属性更容易,get_option
和set_option
的需求也减少了。
答案 2 :(得分:15)
pd.set_option('display.max_rows', 500)
df
在Jupyter中不起作用!
而是使用:
pd.set_option('display.max_rows', 500)
df.head(500)
答案 3 :(得分:8)
正如@hanleyhansen在评论中指出的那样,从版本0.18.1开始,display.height
选项已弃用,并说“使用display.max_rows
代替”。所以你只需要像这样配置它:
pd.set_option('display.max_rows', 500)
请参阅Release Notes — pandas 0.18.1 documentation:
不推荐使用display.height,display.width现在只是一个格式化选项,不能控制摘要的触发,类似于&lt; 0.11.0。
答案 4 :(得分:4)
this comment和this answer中已经指出了这一点,但是我将尝试对这个问题给出更直接的答案:
from IPython.display import display
import numpy as np
import pandas as pd
n = 100
foo = pd.DataFrame(index=range(n))
foo['floats'] = np.random.randn(n)
with pd.option_context("display.max_rows", foo.shape[0]):
display(foo)
pandas.option_context自熊猫0.13.1(pandas 0.13.1 release notes)起可用。 根据{{3}},
[it]允许您执行带有一组选项的代码块,当您退出with块时,这些选项会还原为先前的设置。
答案 5 :(得分:1)
与this answer到similar question一样,无需破解设置。写起来要简单得多:
print(foo.to_string())
答案 6 :(得分:0)
设置使用的行数不受限制
没有
即
pd.set_option('display.max_cols', None)
现在笔记本将显示笔记本中所有数据集中的所有行;)
类似地,您可以设置将所有列显示为
pd.set_option('display.max_rows', None)
现在,如果您使用仅在没有任何头或尾标签的数据帧的情况下运行单元格
df
然后它将显示数据帧df