协慌网

登录 贡献 社区

漂亮地打印整个熊猫系列 / DataFrame

我在终端上经常使用 Series 和 DataFrames。系列的默认__repr__返回减少的样本,具有一些头和尾值,但其余部分丢失。

有没有一种内置方法可以漂亮地打印整个 Series / DataFrame?理想情况下,它将支持适当的对齐方式,可能会支持列之间的边界,甚至可能会为不同的列进行颜色编码。

答案

您还可以将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 的显示逻辑(像这样)

无需修改设置。有一个简单的方法:

print(df.to_string())

当然,如果出现很多情况,请创建一个类似这样的功能。您甚至可以将其配置为在每次启动 IPython 时加载: https://ipython.org/ipython-doc/1/config/overview.html

def print_full(x):
    pd.set_option('display.max_rows', len(x))
    print(x)
    pd.reset_option('display.max_rows')

至于颜色,过于精致的颜色听起来适得其反,但是我同意,例如bootstrap 的.table-striped这样的东西会很好。您总是可以创建一个问题来建议此功能。