【问题标题】:Python Pandas print Dataframe.describe() in default format in JupyterNotebookPython Pandas 在 Jupyter Notebook 中以默认格式打印 Dataframe.describe()
【发布时间】:2021-11-06 13:11:25
【问题描述】:

不带打印功能的输出格式

如果我用

运行 JupyterNotebook 单元
dataframe.describe()

一个漂亮的 fromatted 表将像这样打印: VSCode JupyterNotebook dataframe.describe() solo cell printing format

带打印功能的输出格式

如果我运行一个包含不止一行代码的单元格,dataframe.describe() 将不会打印任何想法。所以我需要打电话

print(dataframe.describe()).

这会导致完全不同的格式: VSCode JupyterNotebook printing dataframe.describe() with print function

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

【问题讨论】:

    标签: python pandas dataframe printing describe


    【解决方案1】:

    这里有很多话要说:

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

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

    3. 如果您不想使用单独的单元格并且仍然获得正确的格式,有多种选择,可能是这样的:

      from IPython.display import display
      display(dataframe)
      

    【讨论】:

      【解决方案2】:

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

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

      在 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()
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-23
        • 1970-01-01
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-28
        • 2019-12-07
        相关资源
        最近更新 更多