4

我对 df.head() 有一个基本问题。执行该函数时,它通常会显示一个漂亮的 HTML 格式的前 5 个值的表格,但现在它似乎只对数据框进行切片并输出如下:

<class 'pandas.core.frame.DataFrame'>
Int64Index: 5 entries, 0 to 4
Data columns (total 9 columns):
survived    5  non-null values
pclass      5  non-null values
name        5  non-null values
sex         5  non-null values
age         5  non-null values
sibsp       5  non-null values
parch       5  non-null values
fare        5  non-null values
embarked    5  non-null values
dtypes: float64(2), int64(4), object(3)

看了这个帖子后,我尝试了

pd.util.terminal.get_terminal_size()

并收到预期的输出 (80, 25)。手动设置打印选项

pd.set_printoptions(max_columns=10)

产生与上面相同的切片数据帧结果。

在深入了解此处的文档并使用

get_option("display.max_rows")
get_option("display.max_columns")

并获得正确的默认 60 行和 10 列。

我以前从未遇到过 df.head() 的问题,但现在它在我所有的 IPython Notebooks 中都是一个问题。

我在谷歌浏览器中运行 pandas 0.11.0 和 IPython 0.13.2。

4

2 回答 2

4

在 pandas 11.0 中,我认为使用了and (and and max_columns`) 的最小值,因此您也需要手动更改它。display.heightmax_rowsdisplay.width

我不喜欢这个,我之前发布了这个github 问题

于 2013-05-20T15:29:30.807 回答
2

尝试使用以下内容显示前 10 项

from IPython.display import HTML 
HTML(users.head(10).to_html())

我认为 pandas 11.0 的 head 函数完全不直观,应该简单地保持为 head() 并且你得到你的 html。

于 2013-05-31T07:45:29.437 回答