Python Pandas在JupyterNotebook中以默认格式打印Dataframe.describe()



不带打印功能的输出格式

如果我用运行JupyterNotebook手机

dataframe.describe()

一张漂亮的fromatted表将被打印成这样:VSCode Jupyter笔记本数据帧.describe((单格打印格式

具有打印功能的输出格式

如果我运行一个只有多行代码的单元格,dataframe.describe((将不会打印任何想法。因此,我需要致电

print(dataframe.describe()).

这导致了完全不同的格式:VSCode Jupyter笔记本打印数据帧.describe((,带有打印功能

有没有办法以第一种格式打印dataframe.describe((?

这里有很多话要说:

  1. Jupyter Notebooks在一次仅通过名称(例如dataframe(调用一个对象时只能打印出一个对象。如果需要,每个命令可以使用一个单元格来获得正确的格式。

  2. 如果您使用函数print,它会将任何内容打印为文本,因为print将函数to_string用于它获得的任何对象。这是python逻辑-相比之下,选项1(是特定于Jupyter的。。。

  3. 如果你不想使用一个单独的单元格,并且仍然获得正确的格式,有几个选项,其中一个可能是:

    from IPython.display import display
    display(dataframe)
    

我假设您在两个环境中都使用相同的jupyter笔记本文件。如果是这种情况,您面临的问题与笔记本中定义的步骤的执行顺序有关,因为代码单元格本身的输出将是单元格最后一行的执行。

让我举一个例子来说明你。

在pandas中定义了以下数据帧:

data = {'id':[1,2,3,4],'nome':['Paolo','Pietro','Giovanni','Maria'],'spesa':[23.4,34.5,99.2,50.1]}

以下单元格的输出在这两种情况下会有所不同:

# Outputs the dataframe itself 
dataframe1 = pd.DataFrame(data)
dataframe1.describe()
dataframe1
# Outputs the describe() function return value
dataframe1 = pd.DataFrame(data)
dataframe1
dataframe.describe()

两个单元格在数据帧上执行相同的两行,而不改变其内部状态,但是,只有最后一行会写入单元格输出。

最新更新