Panda 시리즈 전체를 예쁘게 인쇄 / Data Frame
터미널에서 Series 및 Data Frames를 많이 사용하고 있습니다.디폴트__repr__
시리즈일 경우 일부 머리 및 꼬리 값이 있는 축소 샘플을 반환하지만 나머지는 누락됩니다.
시리즈/데이터 프레임 전체를 예쁘게 인쇄할 수 있는 기본 제공 방법이 있습니까?이상적으로는 적절한 정렬, 열 사이의 경계 및 여러 열에 대한 색상 코딩을 지원합니다.
는, 1 개 이상의 옵션과 함께 사용할 수도 있습니다.
with pd.option_context('display.max_rows', None, 'display.max_columns', None): # more options can be specified also
print(df)
그러면 옵션이 자동으로 이전 값으로 돌아갑니다.
주피터 노트북을 작업하는 경우display(df)
대신print(df)
는 주피터 리치 디스플레이 로직을 사용합니다(그렇게).
설정을 해킹할 필요가 없습니다.간단한 방법이 있습니다.
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')
색칠에 관해서는 색칠을 너무 치밀하게 하는 것은 역효과를 낼 수 있지만, 부트스트랩 같은 것이 좋다고 생각합니다.언제든지 이 기능을 제안하는 문제를 만들 수 있습니다.
팬더를 가져온 후 컨텍스트 관리자를 사용하는 대신 전체 데이터 프레임을 표시하는 옵션을 설정합니다.
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')
표 형식의 패키지를 사용합니다.
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 |
+----+--------------+---------+-------+
사용.pd.options.display
이 답변은 루시디안의 이전 답변의 변형이다.이 기능을 사용하면, 코드의 판독성이 향상됩니다.set_option
.
팬더를 가져온 후 컨텍스트 관리자를 사용하는 대신 대용량 데이터 프레임을 표시하는 다음과 같은 옵션을 설정합니다.
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
팬더 0.25.3에는 포맷 옵션을 허용하는 방법이 있습니다.
사용.to_markdown
마크다운 출력이 필요한 경우 Panda 1.0.0에는 및 메서드가 있습니다.
사용.to_html
HTML 출력이 필요한 경우, Panda 0.25.3은 메서드는 있지만, Panda 0.25.3에는 없습니다.Series.to_html
주의:Series
로 변환할 수 있다DataFrame
.
Ipython 노트북(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)
스크립트
이 간단한 일반 텍스트 솔루션을 제안하는 사람은 없습니다.
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 노트북을 사용할 때 이는 훌륭한 솔루션입니다.
★★★★★★pd.Series()
.to_html()
따라서 변환되어야 합니다.pd.DataFrame()
from IPython.display import display, HTML
display(HTML(s.to_frame().to_html()))
다음과 같은 결과가 나타납니다.
datascroller는 이 문제를 해결하기 위해 부분적으로 작성되었습니다.
pip install datascroller
쿼리, 강조 표시 등을 지원하는 단말기의 Excel 워크북과 같은 마우스 또는 화살표 키로 데이터 프레임을 "스크롤"할 수 있는 터미널 뷰에 로드합니다.
import pandas as pd
from datascroller import scroll
# Call `scroll` with a Pandas DataFrame as the sole argument:
my_df = pd.read_csv('<path to your csv>')
scroll(my_df)
공개:나는 데이터크롤러의 저자 중 한 명이다.
다음과 같이 설정할 수 있습니다.False
:
display.expand_frame_repr : boolean
DataFrame repr .
max_columns
존중되고 만, 그 이 「페이지」, 「페이지」, 「페이지」, 「페이지」를 은 복수의 「에 걸쳐 됩니다.display.width
.
[default: True]
pd.set_option('expand_frame_repr', False)
자세한 내용은 How to Pretty-Print Panda DataFrames 및 Series를 참조하십시오.
다음 방법을 사용하여 이 작업을 수행할 수 있습니다.데이터 프레임에 있는 열의 총 수를 arg로 전달합니다.
'display.max_display'
예:
df= DataFrame(..)
with pd.option_context('display.max_rows', None, 'display.max_columns', df.shape[1]):
print(df)
pd.set_option("display.max_rows", None, "display.max_columns", None)
print(df)
그냥 이렇게 해
산출량
Column
0 row 0
1 row 1
2 row 2
3 row 3
4 row 4
5 row 5
6 row 6
7 row 7
8 row 8
9 row 9
10 row 10
11 row 11
12 row 12
13 row 13
14 row 14
15 row 15
16 row 16
17 row 17
18 row 18
19 row 19
20 row 20
21 row 21
22 row 22
23 row 23
24 row 24
25 row 25
26 row 26
27 row 27
28 row 28
29 row 29
30 row 30
31 row 31
32 row 32
33 row 33
34 row 34
35 row 35
36 row 36
37 row 37
38 row 38
39 row 39
40 row 40
41 row 41
42 row 42
43 row 43
44 row 44
45 row 45
46 row 46
47 row 47
48 row 48
49 row 49
50 row 50
51 row 51
52 row 52
53 row 53
54 row 54
55 row 55
56 row 56
57 row 57
58 row 58
59 row 59
60 row 60
61 row 61
62 row 62
63 row 63
64 row 64
65 row 65
66 row 66
67 row 67
68 row 68
69 row 69
display() 함수를 사용해 보십시오.이렇게 하면 자동으로 수평 및 수직 스크롤 막대가 사용되며, 이를 통해 print()를 사용하는 대신 다양한 데이터 세트를 쉽게 표시할 수 있습니다.
display(dataframe)
display()는 적절한 정렬도 지원합니다.
을 더 이을 선택하면 됩니다.pd.option_context()
데이터 프레임을 명확하게 표시할 수 있는 옵션이 많이 있습니다.
메모 - Jupyter 노트북을 사용하고 있습니다.
언급URL : https://stackoverflow.com/questions/19124601/pretty-print-an-entire-pandas-series-dataframe
'programing' 카테고리의 다른 글
MySQL에서 인덱스 크기를 확인하는 방법 (0) | 2023.01.15 |
---|---|
My Vue.js Vuex 스토어에는 GET 요청을 하는 두 가지 작업이 있습니다.두 번째 액션이 작동하려면 첫 번째 액션의 응답이 필요합니다.어떻게 하는 거야? (0) | 2023.01.15 |
Python에서 특정 크기의 빈 목록을 만듭니다. (0) | 2023.01.12 |
PHP - 줄 바꿈 문자를 만드는 방법 (0) | 2023.01.12 |
Python은 왜 여러 줄의 코멘트를 가지고 있지 않은가? (0) | 2023.01.12 |