Python/판다스(pandas)

판다스 데이터프레임 행을 한번에 모두 보기: 어쩌다 한번만, 또는 항상

공시탈출넘버원 2023. 9. 15. 21:24

ipynb로 셀 실행해서 판다스 데이터프레임을 불러오면, 행이 적은 것은 한번에 다 보여주는데, 대체로 max_rows 기본값인 60줄을 넘어가면 콘솔 출력창에서 양끝만 5줄 정도씩 보여주고 가운데는 생략해 버린다.

그걸 강제로 전부 보여달라고 요청하는 코드이다.

 

주로 알려주던 방법은, 보여주는 개수의 기본값을 변경하는 방법이라 매번 바꾸어주어야 하는데 되게 불편하다.

 

어쩌다 한두번 길게 봐야 하면 아래의 코드를 실행하는 것이 가장 적당하다.

아래 코드에서 필요한 만큼 갖다쓴다.

 

일반적으로는 None 쓰는 것이 제일 편리하다. 언제나 최대 개수를 보여달라는 뜻이다.

import pandas as pd

foo = pd.DataFrame(foo_path) 

with pd.option_context(
    'display.max_rows', None, #표시할 행 개수. None == 모두 출력. 
    'display.max_columns', None #표시할 열 개수. None == 모두 출력.
): 
    display(df_foo)

 

None 대신 양수 int로 넣으면, 행/열 수가 int 이하면 전체를 보여주고 초과하면 줄여서 보여준다.

줄여서 보여줄때는 행 10개(양끝 5개씩)를 보여주는데, 이 값을 변경하고 싶다면 display.min_rows를 추가해준다. 

숫자를 넣으면 int(값/2)로 인식하지만 되도록 짝수로 넣자.

import pandas as pd

foo = pd.DataFrame(foo_path) 

with pd.option_context(
    'display.max_rows', 100, #표시할 행 개수가 100개 이하면 전부, 초과시 줄여서 출력
    'display.max_columns', 30, #표시할 열 개수가 30개 이하면 전부, 초과시 줄여서 출력
    'display.min_rows', 40 # 행 줄여서 표시할 때 총 40개(맨위에서 20개, 맨아래에서 20개) 출력
    ## display.min_columns 란 옵션은 없다.
): 
    display(df_foo)

표시옵션 자체를 항상 바꿔놓거나, 전부 초기화하는 코드는 아래와 같다.

pd.set_option('display.max_rows', None) # 모든 행 보여주기
pd.set_option('display.max_columns', None) # 모든 열 보여주기

pd.reset_option('display.max_rows', 'display.max_rows') # 모든 행/렬 보여주기를 초기화

 

자세한 내용은 판다스 공식문서에서 확인한다.

https://pandas.pydata.org/docs/reference/options.html

 

Options and settings — pandas 1.5.2 documentation

Options and settings API for configuring global behavior. See the User Guide for more. Working with options describe_option(pat[, _print_desc]) Prints the description for one or more registered options. reset_option(pat) Reset one or more options to their

pandas.pydata.org

 

  1. pd.set_option : 내가 원하는 값으로 설정한다.
  2. pd.reset_option : (내가 설정했던 값에서) 기본값으로 설정한다.(== 초기화한다.)

  3. pd.get_option : 현재 설정된 옵션 정보를 불러온다. 설정은 하지 못한다.
  4. pd.describe_option : 내가 적은 옵션이 어떻게 나타나는지 알려준다.