전체 Pandas Series / DataFrame을 예쁘게 인쇄 샘플을 반환합니다. Series / 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')

채색에 관해서는 색상을 너무 정교하게 만드는 것이 나에게는 역효과가 있지만 부트 스트랩.table-striped 과 같은 것이 좋을 것입니다. 이 기능을 제안하기 위해 항상 문제만들 수 있습니다.


답변

컨텍스트 관리자를 사용하는 대신 팬더를 가져온 후 전체 데이터 프레임을 표시하기위한 옵션 을 설정하십시오 .

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.options.display

이 답변은 lucidyan에 의한 이전 답변 의 변형입니다 . 의 사용을 피함으로써 코드를 더 읽기 쉽게 만듭니다 set_option.

컨텍스트 관리자를 사용하는 대신 팬더를 가져온 후 큰 데이터 프레임을 표시하기위한 옵션 을 설정하십시오 .

def set_pandas_display_options() -> None:
    # Ref: https://stackoverflow.com/a/52432757/
    display = pd.options.display

    display.max_columns = 1000
    display.max_rows = 1000
    display.max_colwidth = 199
    display.width = None
    # display.precision = 2  # set as needed

set_pandas_display_options()

이 후에 는 노트북을 사용하는 경우 display(df)또는 df노트북을 사용하는 경우에만 사용할 수 있습니다 print(df).

사용 to_string

Pandas 0.25.3에는 서식 옵션을 허용하는 메소드 DataFrame.to_stringSeries.to_string메소드가 있습니다.

사용 to_markdown

필요한 것은 마크 다운 출력 인 경우 Pandas 1.0.0에는 DataFrame.to_markdownSeries.to_markdown메소드가 있습니다.

사용 to_html

HTML 출력이 필요한 경우 Pandas 0.25.3에는 DataFrame.to_html메소드 가 있지만는 없습니다 Series.to_html. 참고는이 것을 Series할 수 있습니다 변환 된 A와 DataFrame.