개요
Jupyter 노트북 환경에서 작업을 하다 보면 DataFrame을 확인할 때 컬럼이나 행이 생략되어 전체 정보를 확인할 수 없는 경우가 있다. 이런 경우 생략하는 정도를 조정하면 보다 효율적으로 데이터를 조회할 수 있다.
현재 옵션 확인
옵션을 조정하기 전에 먼저 어떤 옵션이 있는지 확인할 필요가 있을 것 같다.
옵션에 대한 설명은 pandas.describe_option을 통해 확인할 수 있다.
import pandas as pd
pd.describe_option()
코드 상으로도 확인할 수 있지만 공식 문서를 활용하는 게 더 수월할 수 있다.
https://pandas.pydata.org/pandas-docs/stable/user_guide/options.html#available-options
인쇄할 행/열 수 설정
DataFrame의 인쇄 행/열 수 설정은 아래 두 옵션에 해당한다.
display.max_columns
DataFrame의 컬럼 수가 max_columns를 초과하면 생략한다. None으로 설정하면 생략 없이 출력한다.
display.max_rows
DataFrame의 행 수가 max_rows를 초과하면 생략한다. None으로 설정하면 생략 없이 출력한다.
각 옵션에 대해 설정할 때는 아래와 같이 set_option 함수를 사용하여 설정할 수 있다.
import pandas as pd
pd.set_option('display.max_columns', None) ## 모든 열 출력
pd.set_option('display.max_rows', None) ## 모든행 출력
또는 기본값을 유지하고 싶다면 context manager를 활용하는 방법도 있다.
import pandas as pd
with pd.option_context("display.max_rows", None, "display.max_columns", None):
print(pd.get_option("display.max_rows"))
print(pd.get_option("display.max_columns"))
예로 들어, 아래와 같이 데이터를 조회했는데 열 수와 행 수 모두 초과하여 표시되지 않는 부분이 있다고 하자.
이때 아래와 같이, 설정값을 조정하면 생략된 부분 없이 모든 데이터를 확인할 수 있다.
너비 설정
너비 설정은 크게 두 가지인 것 같다.
display.width
display의 너비. 기본값은 80이다.
display.max_colwidth
컬럼의 최대 문자 너비. 문자열이 셀의 너비보다 길면 ...으로 생략된다. None이면 생략 없이 표시된다.
기본값은 50이다.
테스트를 Jupyter Notebook에서 하고 있지 않아서 그런지 width 옵션은 테스트가 어렵다. 다만, 하지만 max_colwidth은 확인할 수 있었는데, 데이터를 조회하다 보면 다음과 같이 문자열이 생략되는 경우를 확인할 수 있다.
이때 max_colwidth를 적절하게 조정하면,
생략됐던 문자열 뒷부분을 확인할 수 있게 된다.
참고 문서
https://star-crab.tistory.com/19
https://ssongblog.tistory.com/66