漂亮印刷整个熊猫系列/数据框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漂亮印刷整个熊猫系列/数据框架相关的知识,希望对你有一定的参考价值。

我在终端上使用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富显示逻辑(like so)

另一答案

无需破解设置。有一个简单的方法:

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's .table-striped这样的东西会很好。你可以随时create an issue建议这个功能。

另一答案

导入pandas后,作为使用上下文管理器的替代方法,设置此类options以显示整个数据帧:

pd.set_option('display.max_columns', None)  # or 1000
pd.set_option('display.max_rows', None)  # or 1000
pd.set_option('display.max_colwidth', -1)  # or 199

有关有用选项的完整列表,请参阅:

pd.describe_option('display')
另一答案

使用制表包:

pip install tabulate

并考虑以下示例用法:

import pandas as pd
from io import StringIO
from tabulate import tabulate

c = """Chromosome Start End
chr1 3 6
chr1 5 7
chr1 8 9"""

df = pd.read_table(StringIO(c), sep="\s+", header=0)

print(tabulate(df, headers='keys', tablefmt='psql'))

+----+--------------+---------+-------+
|    | Chromosome   |   Start |   End |
|----+--------------+---------+-------|
|  0 | chr1         |       3 |     6 |
|  1 | chr1         |       5 |     7 |
|  2 | chr1         |       8 |     9 |
+----+--------------+---------+-------+
另一答案

如果您使用的是Ipython Notebook(Jupyter)。您可以使用html

from IPython.core.display import HTML
display(HTML(df.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)
另一答案

这个答案是以前的answer by lucidyan的变种。它通过避免使用set_option使代码更具可读性。

导入pandas后,作为使用上下文管理器的替代方法,设置此类options以显示大型数据帧:

def set_pandas_options() -> None:
    pd.options.display.max_columns = 1000
    pd.options.display.max_rows = 1000
    pd.options.display.max_colwidth = 199
    pd.options.display.width = None
    # pd.options.display.precision = 2  # set as needed

set_pandas_options()

在此之后,如果使用笔记本,你可以使用display(df)df,否则使用print(df)

另一答案

您可以使用以下方法实现此目的。只是通过总数没有。 DataFrame中存在的列作为arg

'display.max_columns'

例如:

df= DataFrame(..)
with pd.option_context('display.max_rows', None, 'display.max_columns', df.shape[1]):
    print(df)

以上是关于漂亮印刷整个熊猫系列/数据框架的主要内容,如果未能解决你的问题,请参考以下文章

漂亮地打印熊猫数据框

从熊猫框架中的一系列数据中找出值和日期

SpringCloud系列四:Eureka 服务发现框架(定义 Eureka 服务端Eureka 服务信息Eureka 发现管理Eureka 安全配置Eureka-HA(高可用) 机制Eur(代码片段

漂亮的印刷品

用漂亮的汤和熊猫刮桌子时如何保留链接

熊猫将 lambda 应用于整个数据框 [重复]