为什么 jupyter 有时打印格式化的 DataFrame 有时打印为文本?

我在 jupypter notebook 中有以下代码:


# (1) How to add a new column?

test_csv['aggregator'] = None

print (test_csv)


# (2) How to remove a column?

test_csv.drop(columns=['platform'])

它打印以下内容:

http://img4.mukewang.com/646c744900019ed106440354.jpg

为什么第二条语句采用表格格式(没有print语句)而第一条只是文本数据?DataFrame有没有一种方法可以使用格式良好的表格来强制打印格式?



哈士奇WWW
浏览 139回答 4
4回答

慕姐8265434

要获得格式良好(灰色和白色的表格格式)数据框,您可以将其留在单元格的末尾,但这仅适用于单个数据框。如果想要打印多个格式良好的数据帧,可以使用1)from IPython.display import displaydisplay(df1) #displays nicely formatted dataframe1display(df2) #displays nicely formatted dataframe2或者2)from IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all"df1df2#displays both dataframes, nicely formatted注意:漂亮的格式是 Jupyter notebook 呈现(样式化和显示)数据框的 HTML 版本,与浏览器呈现 html 代码的方式相同。(这里虽然从表的df1.to_html()获得的真实 HTML 代码更少由浏览器呈现时作为独立 html 代码的样式,因为 Jupyter Notebook 添加了一些额外的样式)

慕码人2483693

为什么 jupyter 有时打印格式化的 DataFrame 有时打印为文本?如果您使用该函数 -print它会将其打印为文本,因为 print 正在为它获取的任何对象使用函数 to_string 。当您将数据框“留在”单元格的和处时,它会将其显示为表格,因为它是 Jupiter 的功能之一。该函数test_csv.drop(columns=['platform'])返回 df 如果你想让它做你必须使用的数据帧的下降,inplace=True或者df=df.drop(col)... 打印数据帧

慕后森

test_csv.drop(columns=['platform'])实际上并没有删除该列。它只是通过打印其状态向您显示数据框的临时图片。要实际删除该列:test_csv.drop(columns=['platform'], inplace=True)或者test_csv.drop('platform', axis=1, inplace=True)test_csv['aggregator'] = None通过为其分配新列来更改数据框的状态。因此,它不打印任何东西。

慕婉清6462132

我认为您在 Jupyter Notebook 的同一个单元格中运行这两个语句您可以在一个单元格中运行以下代码片段# (1) How to add a new column?test_csv['aggregator'] = Nonetest_csv # no need to use print在另一个牢房里# (2) How to remove a column?test_csv.drop(columns=['platform'])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python