Pandas/Numpy 숫자의 출력 옵션 조정
numpy 와 pandas 에서 수를 출력할 때 형식, 크기 및 범위를 설정할 수 있다. 간단히 보면 아래 테이블 같이 형식을 바꿔준다.
column | 변환 | column |
---|---|---|
1e6 | precision | 1,000,000 |
1.1e-6 | format | 0.1 |
아래 요약한 옵션 방법을 사용해서 Numpy 와 Pandas에 있는 숫자를 출력할 때 표현방법, 표기법, 환률, 정밀도 등을 변경해 사용할 수 있다
numpy 출력 형식 변경
numpy 숫자 출력 형식 변경
numpy.set_printoptions 을 사용할 수 있다.
1 | numpy.set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, |
현재 출력형식 확인
np.get_printoptions()
으로 현재 상태를 출력할 수 있다.
1 | > np.get_printoptions() |
Numpy 에서 실수 Float 의 출력 형식을 바꾸는 몇가지 사례를 보자
- formatter 이용
1 | import numpy as np |
- precision 이용
1 | > np.set_printoptions(precision=4) |
- threshold 이용
개수가 많은 아이템을 출력할 때 요약해 출력할 수 있다.
1 | > np.set_printoptions(threshold=5) |
numpy.printoptions 사용
numpy.printoptions 를 with 구문과 함께 사용해 제한된 출력 조정을 할 수 있다.
출력시 printoptions 를 with 구문과 사용할 수 있다. set_printoptions 의 인자를 동일하게 적용할 수 있다
- precision, threshold, edgeitems, linewidth, suppress, nanstr, infstr, formatter, sign, floatmode
1 | numpy.printoptions(*args, **kwargs)[source] |
소수점 출력 변경
1 | > np.array([2.0]) / 3 |
pandas 숫자 출력 형식 변경
pandas에서 몇 가지 옵션을 바꾸는 방법을 정리해 보자. pandas의 옵션은 pd.options 를 사용한다.
pd.options.display
출력의 형태, 표기를 변경하는 것은 pd.options.display
아래에 있다. 여기서 사용할 수 있는 옵션은 describe_option()
으로 확인할 수 있다.
1 | > pd.describe_option() |
- row, column 출력 개수 조정
pd.options.display.max_rows
: 표를 출력할 때 최대 행 수입니다.pd.options.display.min_rows
: 표를 출력할 때 최소 행 수입니다.
1 | import pandas as pd |
min_row
, max_row
에 직접 대입하면 해당 옵션의 현재 값이 변경된다.
1 | > pd.options.display.min_rows=100 |
max_rows
에 값을 입력하면 테이블의 최대 행수를 바꿀 수 있다.
이미지 참조 1
1 | > pd.options.display.max_rows = 100 |
- pd.get_option()
, pd.set_option()
함수
pd.get_option()
함수를 이용해서 옵션인자에 대한 정보를 확인할 수 있다.
1 | > pd.get_option('min_rows') |
get_option은 옵션 이름의 일부만 일치해도 된다.
1 | > pd.get_option('min_r') |
max_rows 수를 설정한다. set_option도 일부만 일치해도 된다.
1 | > pd.set_option('max_rows', 20) |
- 컬럼의 폭 조정
display.max_colwidth
는 보통 50~70자 정도 정해져 있다. 컬럼에 표시되는 텍스트가 50자가 넘으면 ...
줄임 표시가 나타난다.
1 | > pd.options.display.max_colwidth |
- chop_threshold
chop_threshold
는 값의 크기 한계를 지정해서 이 값보다 작은 수는 모두 0으로 표시한다.
1 | > pd.options.display.chop_threshold = 0.99 |
숫자 포매팅
다양한 사례는:
- float_format
float_format
는 실수 값을 출력시 소수점의 출력의 정밀도를 조정할 수 있다. 아래 람다 함수 lambda x: f'{x:.1f}
는 실수 x를 받아 소수점 첫째 자리까지 출력해 준다.
1 | > pd.options.display.float_format = lambda x: f'{x:.1f}' |
또한 set_option 을 사용할 수 있다.
1 | > pd.set_option('display.float_format', '{:.2f}'.foramt ) |
금액 단위에 사용하는 천단위 구분을 위해서 {:,.2f}
형식을 사용하면 화폐 단위를 추가하고 천단위 구분자를 추가해 주고 소수점 2자리수 정밀로를 지정한다.
1 | > pd.set_option('display.float_format', '${:,.2f}'.format ) |
- precision
실수의 소수점은 precision
로 과학적 표기법으로 변환할 자릿수를 지정한다. 아래와 같이 하면 소수점 셋째 자리 밑으로는 과학적 표기법으로 표시합니다.
1 | > pd.options.display.precision = 3 |
과학적 표기법으로 3.000e-04는 3.000 이다. 자릿수가 아주 작거나 큰 수를 표기할 때 유용합니다.
- 설정 초기화 reset_option()
설정을 초기화할 때 사용한다.
1 | # chop_threshold 옵션 초기화 |
- 옵션 설명 describe_option()
pd.describe_option(OPTIONS)
를 사용하면 해당 옵션에 대한 설명을 출력해 준다.
1 | > pd.describe_option("max_rows") |
참고
Pandas/Numpy 숫자의 출력 옵션 조정
https://blog.thinkbee.kr/pandas-numpy-display_format-5e6e2759a37b/