我经常在终端上使用Series和DataFrames。Series的默认__repr__返回一个减少的样本,其中有一些头部和尾部值,但其余的都没有。
是否有一种内置的方式来漂亮地打印整个系列/数据帧?理想情况下,它应该支持适当的对齐,可能是列之间的边界,甚至可能是不同列的颜色编码。
我经常在终端上使用Series和DataFrames。Series的默认__repr__返回一个减少的样本,其中有一些头部和尾部值,但其余的都没有。
是否有一种内置的方式来漂亮地打印整个系列/数据帧?理想情况下,它应该支持适当的对齐,可能是列之间的边界,甚至可能是不同列的颜色编码。
当前回答
脚本
没有人提出过这种简单的纯文本解决方案:
from pprint import pprint
pprint(s.to_dict())
产生如下结果:
{'% Diabetes': 0.06365372374283895,
'% Obesity': 0.06365372374283895,
'% Bachelors': 0.0,
'% Poverty': 0.09548058561425843,
'% Driving Deaths': 1.1775938892425206,
'% Excessive Drinking': 0.06365372374283895}
Jupyter記本嗎
此外,当使用Jupyter笔记本时,这是一个很好的解决方案。
注意:pd.Series()没有.to_html(),所以必须转换为pd.DataFrame()
from IPython.display import display, HTML
display(HTML(s.to_frame().to_html()))
产生如下结果:
其他回答
试试这个
pd.set_option('display.height',1000)
pd.set_option('display.max_rows',500)
pd.set_option('display.max_columns',500)
pd.set_option('display.width',1000)
你也可以使用带有一个或多个选项的option_context:
with pd.option_context('display.max_rows', None, 'display.max_columns', None): # more options can be specified also
print(df)
这将自动将选项返回到它们以前的值。
如果你在jupyter-notebook上工作,使用display(df)而不是print(df)将使用jupyter丰富的显示逻辑(就像这样)。
使用pd.options.display
这个答案是lucidyan先前答案的一个变体。它通过避免使用set_option使代码更具可读性。
导入pandas后,作为使用上下文管理器的另一种选择,设置以下选项来显示大数据框架:
def set_pandas_display_options() -> None:
"""Set pandas display options."""
# Ref: https://stackoverflow.com/a/52432757/
display = pd.options.display
display.max_columns = 1000
display.max_rows = 1000
display.max_colwidth = 199
display.width = 1000
# display.precision = 2 # set as needed
set_pandas_display_options()
在此之后,如果使用笔记本电脑,您可以使用display(df)或仅使用df,否则使用print(df)。
使用to_string
Pandas 0.25.3有DataFrame。to_string和Series。接受格式化选项的To_string方法。
使用to_markdown
如果你需要的是降价输出,Pandas 1.0.0有DataFrame。to_markdown和Series。to_markdown方法。
使用to_html
如果你需要的是HTML输出,Pandas 0.25.3确实有一个DataFrame。to_html方法,而不是Series.to_html方法。注意Series可以转换为DataFrame。
导入pandas后,作为使用上下文管理器的另一种选择,设置这些选项来显示整个数据框架:
pd.set_option('display.max_columns', None) # or 1000
pd.set_option('display.max_rows', None) # or 1000
pd.set_option('display.max_colwidth', None) # or 199
有关有用选项的完整列表,请参见:
pd.describe_option('display')
你可以将expand_frame_repr设置为False:
显示。Expand_frame_repr:布尔值 是否打印宽DataFrame的完整DataFrame repr 跨多行,max_columns仍然得到尊重,但是输出 如果它的宽度超过了,会在多个“页面”上环绕吗 display.width。 (默认值:真实)
pd.set_option('expand_frame_repr', False)
要了解更多细节,请阅读如何漂亮地打印熊猫数据框架和系列