在 Jupyter Python Notebook 中显示所有数据框列

Posted

技术标签:

【中文标题】在 Jupyter Python Notebook 中显示所有数据框列【英文标题】:Display all dataframe columns in a Jupyter Python Notebook 【发布时间】:2018-04-11 20:02:45 【问题描述】:

我想在 Jupyter Notebook 中显示数据框中的所有列。 Jupyter 显示了一些列并在最后一列添加点,如下图所示:

如何显示所有列?

【问题讨论】:

【参考方案1】:

尝试如下显示max_columns设置:

import pandas as pd
from IPython.display import display

df = pd.read_csv("some_data.csv")
pd.options.display.max_columns = None
display(df)

或者

pd.set_option('display.max_columns', None)

Pandas 0.11.0 向后

这已被弃用,但在早于 0.11.0 的 Pandas 版本中,max_columns 设置指定如下:

pd.set_printoptions(max_columns=500)

【讨论】:

如果要进行临时设置,可以使用例如with pd.option_context("display.max_rows", 10, "display.max_columns", 5):(见Getting and setting options)。【参考方案2】:

用于大型(但不是太大)数据帧的 Python 3.x

也许是因为我有旧版本的熊猫,但在 Jupyter 笔记本上这对我有用

import pandas as pd
from IPython.core.display import html

df=pd.read_pickle('Data1')
display(HTML(df.to_html()))

【讨论】:

试过了,但它破坏了我的 jupyter 会话内存不足。我的电脑有 SSD 和 8 GB RAM 内存... @FLBKernel 它没有对我这样做,也许你的数据框比我的大得多。你的出路是什么?您是否尝试过另一种方法并为您工作?如果是这样,请分享您的知识。谢谢。 我还没有找到任何方法,但我会尽快解决这个问题。是的,我的 Dataframe 可能更大,所以让我们指出这对于大型 Dataframe 是不推荐的 @FLBKernel 我的数据框也很大。但我不知道它可以大到什么程度。我会指出来的。谢谢! 我的有 107.763 行和 15 列。我们可以确定 - 也许 - 超过 100k 行和 15 列这个答案是不推荐的。我喜欢“大(但不是太大)”的标题:)【参考方案3】:

我知道这个问题有点老了,但以下问题在运行 pandas 0.22.0 和 Python 3 的 Jupyter Notebook 中对我有用:

import pandas as pd
pd.set_option('display.max_columns', <number of columns>)

你也可以对行做同样的事情:

pd.set_option('display.max_rows', <number of rows>)

这样就省去了导入 IPython,pandas.set_option 文档中有更多选项:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.set_option.html

【讨论】:

如果事先不知道列数,可以在中使用None关键字。 由于某种原因,pd.set_option 和 pd.options.display.max_columns = None 对我不起作用。只有使用 HTML 的解决方案才有效。我正在使用 Python 3.8.5.0、pandas 1.1.3 和 jupyter core=4.6.3 和 jupyter-notebook:6.1.4。知道为什么这些解决方案不起作用吗?【参考方案4】:

我建议在上下文管理器中设置显示选项,以便它只影响单个输出。我通常更喜欢“漂亮”的 html 输出,并定义一个函数 force_show_all(df) 用于显示 DataFrame df

from IPython.core.display import display, HTML

def force_show_all(df):
    with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.width', None):
        display(HTML(df.to_html()))

# ... now when you're ready to fully display df:
force_show_all(df)

正如其他人所提到的,请谨慎仅在合理大小的数据框上调用它。

【讨论】:

【参考方案5】:

您可以使用 pandas.set_option(),对于列,您可以指定这些选项中的任何一个

pd.set_option("display.max_rows", 200)
pd.set_option("display.max_columns", 100)
pd.set_option("display.max_colwidth", 200)

对于完整的打印列,您可以这样使用

import pandas as pd
pd.set_option('display.max_colwidth', -1)
print(words.head())

【讨论】:

【参考方案6】:

如果你想显示如下设置的所有行

pd.options.display.max_rows = None

如果你想显示所有列设置如下

pd.options.display.max_columns = None

【讨论】:

【参考方案7】:

这可以帮助你:

pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

【讨论】:

以上是关于在 Jupyter Python Notebook 中显示所有数据框列的主要内容,如果未能解决你的问题,请参考以下文章

Jupyter Notebook安装新python kernel

python3中安装Jupyter Notebook的命令

python3中安装Jupyter Notebook的命令

jupyter notebook 怎么跑pyspark

pycharm怎么运行jupyter notebook?

在Jupyter notebook中使用特定虚拟环境中的python的kernel