Pandas DataFrame 表格垂直滚动条

新手上路,请多包涵

我有一个大的(垂直的)pandas 数据框,我想将其显示为带有滚动条的漂亮表格。我可以让它显示包含所有行的表格,但我无法显示滚动条。

 def data(x):
    strData = strData[['Data1','Data2','Data3']]
    display(strData)

输出:没有垂直滚动条

在此处输入图像描述

原文由 magicsword 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

不确定这是否是您的意思,但我想您需要将 max_rows 选项设置为 None,这样 pandas 就不会限制显示的行数:

 pd.set_option("display.max_rows", None)

在此处输入图像描述


_更新_:

 In [27]:
##javascript
IPython.OutputArea.auto_scroll_threshold = 10;

In[28]:
def display_():
    pd.set_option("display.max_rows", None)
    from IPython.core.display import display
    display(df) #df must be defined up there

在此处输入图像描述

原文由 Psidom 发布,翻译遵循 CC BY-SA 4.0 许可协议

另一个答案对我不起作用 - IPython.OutputArea 似乎不再存在(据我所知,至少在 VSCode 中不存在并且基于 IPython 代码)。

我设法使 DataFrame 可滚动,方法是为 DataFrame 生成 HTML 表,然后 将其放入 div 中,这可以使用 CSS 使其可滚动。在这种情况下,我们真正需要做的就是将高度设置为某个像素值。

我们还可以将溢出设置为 auto 并将宽度设置为 fit-content 这样滚动条就出现在 DataFrame 的旁边,而不是一直出现在窗口的右侧。

 import pandas as pd
from IPython.display import display, HTML

df = pd.DataFrame([(i, i) for i in range (20)])

pd.set_option("display.max_rows", None)

# Puts the scrollbar next to the DataFrame
display(HTML("<div style='height: 200px; overflow: auto; width: fit-content'>" +
             df.style.render() +
             "</div>"))

# Puts the scrollbar on the right side of the window
display(HTML("<div style='height: 200px'>" + df.style.render() + "</div>"))

演示:

原文由 Bernhard Barker 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题