【问题标题】:Using python / Jupyter Notebook, how to prevent row numbers from printing?使用 python / Jupyter Notebook,如何防止打印行号?
【发布时间】:2020-05-19 18:26:48
【问题描述】:

当我打印数据库时,它会打印行号。在 spyder 中,我使用 print(df),而在 jupyter notebook 中,我使用 df 进行打印。有什么建议吗?

        brand         mean_price  mean_mileage(km)  total_listed 
 0      volkswagen    3913        140769            8046
 1      opel          2697        138046            4065
 2      bmw           5313        143804            4048
 3      mercedes_benz 4790        143507            3526
 4      audi          5221        144614            3031
 5      ford          2912        136321            2483

【问题讨论】:

  • 您有什么特别的理由需要这样做吗?
  • 没有什么特别的原因,除了我在从事数据分析工作时对学习更多编码的好奇心之外

标签: python jupyter-notebook


【解决方案1】:

如果您想保留类似于您在@Prachiti 的评论中表达的数据框格式的内容,则可以将另一列指定为索引。例如,您可以使用以下代码将品牌设为 index

df = df.set_index('brand')

或者,将其显示为 HTML。
最简单的方法是在转换为 HTML 时去掉索引列,如图here。它将像数据框一样显示。

from IPython.display import HTML
HTML(df.to_html(index=False))

但是,甚至可以结合 CSS 以与数据框渲染类似的样式显示 HTML 表格,同时使用 display:none; 隐藏第一列。

总代码如下所示;但是,您可以根据需要将其拆分为多个单元格:

html=df.to_html()
# css modified from cell #9  https://nbviewer.jupyter.org/github/fomightez/dataframe2img/blob/master/index.ipynb
# and https://stackoverflow.com/a/37811124/8508004
css = """
<style type=\"text/css\">
table {
color: #333;
font-family: Helvetica, Arial, sans-serif;
width: 340px;
border-collapse:
collapse; 
border-spacing: 0;
}
td, th {
border: 1px solid transparent; /* No more visible border */
font-size: 12.8px;
height: 24px;
}
th {
background: #FAFAFA; /* Darken header a bit */
font-weight: bold;
}
td {
background: #FAFAFA;
text-align: center;
font-size: 11.8px;
}
table tr:nth-child(odd) td{
background-color: white;
}
th:nth-child(1) { display:none; }
</style>
"""
from IPython.display import HTML
HTML(css+html)

这是显示结果的图像,带有示例数据框(第一个单元格中的代码 here):

【讨论】:

  • 您的 set_index 简单代码有效,除了标题分成两行并且“品牌”在第二行。就像在您的示例中一样,“Item”和“In_stock”将位于第 1 行,“Manufacturer”位于第 2 行,但位于它们各自列的上方
  • 是的,索引不会与其他列完全显示在同一行;但是,我添加了一种不需要 CSS 的方法。
  • 效果很好!还需要学习如何将 HTML/CSS 引入 python
【解决方案2】:

这应该可以工作

print (df.to_string(index=False))

【讨论】:

  • jupyter notebook 中不再显示表格边界
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 2021-09-30
  • 2023-02-07
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
相关资源
最近更新 更多