Pandas DataFrame 表格垂直滚动条
Posted
技术标签:
【中文标题】Pandas DataFrame 表格垂直滚动条【英文标题】:Pandas DataFrame Table Vertical Scrollbars 【发布时间】:2017-08-01 03:34:36 【问题描述】:我有一个大的(垂直的)pandas 数据框,我想将其显示为带有滚动条的漂亮表格。我可以让它显示所有行的表格,但我无法显示滚动条。
def data(x):
strData = strData[['Data1','Data2','Data3']]
display(strData)
输出:没有垂直滚动条
【问题讨论】:
【参考方案1】:不确定这是否是您的意思,但我想您需要将 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
【讨论】:
这正是我所需要的。我已将其添加到代码中,但它仍然向我显示所有行并且没有滚动条。我尝试了 print(strData),只在函数中使用了 strData,但它不起作用。当它在函数内部时,它的行为会有所不同吗? 刚刚在函数内部进行了测试。这对我有用。def display_(): pd.set_option("display.max_rows", None) from IPython.core.display import display display(df)
当我使用 print(strData) 时,数据不在一个漂亮的表中了。它只是显示为常规数据(没有表格大纲),行将是动态的,具体取决于文件的吨长度。它们可以从 30 行到 300 行。这就是我想为数据添加滚动条的原因。
30行还不足以触发python notebook的滚动条。您需要更改 auto_scrolling 的阈值。尝试更新的方法
由于某种原因,javascript 行给出了错误【参考方案2】:
另一个答案对我不起作用 - IPython.OutputArea
似乎不再存在(据我所知,至少在 VSCode 中并基于 IPython 代码)。子>
我设法通过为 DataFrame 生成 html 表和 putting that into a div
, which can be made scrollable using CSS 的一些 hacky 解决方案使 DataFrame 可滚动。在这种情况下,我们真正需要做的就是将高度设置为某个像素值。
我们还可以将溢出设置为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>"))
演示:
【讨论】:
【参考方案3】:只需传递数据帧并观察魔法。
def table(df):
import plotly.graph_objs as go
fig = go.Figure(data=[go.Table(
header=dict(values=list(df.columns),
align='left'),
cells=dict(values=[df[i] for i in df.columns],
align='left'))
])
return fig
【讨论】:
您能否解释一下为什么在这种情况下 plotly 是一个很好的库,并可能显示它的外观截图? 事情是我在情节上很舒服。它提供了比 matplotlib 和 seaborn 更多的信息。休息也取决于用户是否可以使用其他库。以上是关于Pandas DataFrame 表格垂直滚动条的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Pandas DataFrame 上计算滚动累积乘积
在内置“滚动”之外对 Pandas Dataframe 进行滚动窗口操作的最佳方法?
pandas使用rolling函数计算dataframe指定数据列特定窗口下的滚动有效数值计数(rolling count)自定义指定滚动窗口的大小(window size)