numpy 와 pandas 에서 수를 출력할 때 형식, 크기 및 범위를 설정할 수 있다. 간단히 보면 아래 테이블 같이 형식을 바꿔준다.
column
변환
column
1e6
precision
1,000,000
1.1e-6
format
0.1
아래 요약한 옵션 방법을 사용해서 Numpy 와 Pandas에 있는 숫자를 출력할 때 표현방법, 표기법, 환률, 정밀도 등을 변경해 사용할 수 있다
numpy 출력 형식 변경 numpy 숫자 출력 형식 변경 numpy.set_printoptions 을 사용할 수 있다.
1 2 numpy.set_printoptions(precision=None , threshold=None , edgeitems=None , linewidth=None , suppress=None , nanstr=None , infstr=None , formatter=None , sign=None , floatmode=None , *, legacy=None )
현재 출력형식 확인 np.get_printoptions()
으로 현재 상태를 출력할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 > np.get_printoptions() {'edgeitems' : 3 , 'threshold' : 1000 , 'floatmode' : 'maxprec' , 'precision' : 8 , 'suppress' : False , 'linewidth' : 75 , 'nanstr' : 'nan' , 'infstr' : 'inf' , 'sign' : '-' , 'formatter' : None , 'legacy' : False }
Numpy 에서 실수 Float 의 출력 형식을 바꾸는 몇가지 사례를 보자
1 2 import numpy as npnp.set_printoptions(formatter={'float_kind' : lambda x: "{0:0.3f}" .format (x)})
- precision 이용 1 2 3 > np.set_printoptions(precision=4 ) > np.array([1.123456789 ]) [1.1235 ]
- threshold 이용 개수가 많은 아이템을 출력할 때 요약해 출력할 수 있다.
1 2 3 > np.set_printoptions(threshold=5 ) > np.arange(10 ) array([0 , 1 , 2 , ..., 7 , 8 , 9 ])
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 2 3 4 5 6 > np.array([2.0 ]) / 3 array([0.66666667 ]) > with np.printoptions(precision=3 ): > print ( np.array([2.0 ]) / 3 )
pandas 숫자 출력 형식 변경 pandas에서 몇 가지 옵션을 바꾸는 방법을 정리해 보자. pandas의 옵션은 pd.options 를 사용한다.
pd.options.display 출력의 형태, 표기를 변경하는 것은 pd.options.display
아래에 있다. 여기서 사용할 수 있는 옵션은 describe_option()
으로 확인할 수 있다.
1 2 3 4 5 6 7 > pd.describe_option() compute.use_bottleneck : bool Use the bottleneck library to accelerate if it is installed, the default is True Valid values: False ,True [default: True ] [currently: True ] ...
- row, column 출력 개수 조정
pd.options.display.max_rows
: 표를 출력할 때 최대 행 수입니다.
pd.options.display.min_rows
: 표를 출력할 때 최소 행 수입니다.
1 2 3 4 5 import pandas as pd> pd.options.display.max_rows 60 > pd.options.display.min_rows 10
min_row
, max_row
에 직접 대입하면 해당 옵션의 현재 값이 변경된다.
1 2 3 > pd.options.display.min_rows=100 > pd.options.display.min_rows 100
max_rows
에 값을 입력하면 테이블의 최대 행수를 바꿀 수 있다.
이미지 참조 1
1 2 3 > pd.options.display.max_rows = 100 > pd.options.display.max_rows 100
- pd.get_option()
, pd.set_option()
함수 pd.get_option()
함수를 이용해서 옵션인자에 대한 정보를 확인할 수 있다.
1 2 > pd.get_option('min_rows' ) 100
get_option은 옵션 이름의 일부만 일치해도 된다.
1 2 > pd.get_option('min_r' ) 100
max_rows 수를 설정한다. set_option도 일부만 일치해도 된다.
1 2 3 4 5 6 > pd.set_option('max_rows' , 20 ) > pd.options.display.max_rows 20 > pd.set_option('max_r' , 50 ) > pd.options.display.max_rows 50
- 컬럼의 폭 조정 display.max_colwidth
는 보통 50~70자 정도 정해져 있다. 컬럼에 표시되는 텍스트가 50자가 넘으면 ...
줄임 표시가 나타난다.
1 2 > pd.options.display.max_colwidth 50
- chop_threshold chop_threshold
는 값의 크기 한계를 지정해서 이 값보다 작은 수는 모두 0으로 표시한다.
1 2 3 4 5 6 > pd.options.display.chop_threshold = 0.99 > pd.DataFrame({'x' : [10 , 1 , 0.1 ]}) > print (x) 0 10.0 1 1.0 2 0.0
숫자 포매팅 다양한 사례는:
float_format
는 실수 값을 출력시 소수점의 출력의 정밀도를 조정할 수 있다. 아래 람다 함수 lambda x: f'{x:.1f}
는 실수 x를 받아 소수점 첫째 자리까지 출력해 준다.
1 2 3 4 > pd.options.display.float_format = lambda x: f'{x:.1 f} ' > pd.DataFrame({'x' : [3.141592 ]}) x 0 3.1
또한 set_option 을 사용할 수 있다.
1 > pd.set_option('display.float_format' , '{:.2f}' .foramt )
금액 단위에 사용하는 천단위 구분을 위해서 {:,.2f}
형식을 사용하면 화폐 단위를 추가하고 천단위 구분자를 추가해 주고 소수점 2자리수 정밀로를 지정한다.
1 2 3 4 5 > pd.set_option('display.float_format' , '${:,.2f}' .format ) > pd.DataFrame({'x' : [10000000.0 , 34589234.4 ]}) x 0 $10 ,000 ,000.00 1 $34 ,589 ,234.40
- precision 실수의 소수점은 precision
로 과학적 표기법으로 변환할 자릿수를 지정한다. 아래와 같이 하면 소수점 셋째 자리 밑으로는 과학적 표기법으로 표시합니다.
1 2 3 4 > pd.options.display.precision = 3 > pd.DataFrame({'x' : [0.5 ], 'y' : [0.0005 ]}) x y 0 0.5 5.000e-04
과학적 표기법으로 3.000e-04는 3.000 이다. 자릿수가 아주 작거나 큰 수를 표기할 때 유용합니다.
- 설정 초기화 reset_option()
설정을 초기화할 때 사용한다.
1 2 3 4 pd.reset_option('display.chop_threshold' ) pd.reset_option('display.float_format' )
- 옵션 설명 describe_option()
pd.describe_option(OPTIONS)
를 사용하면 해당 옵션에 대한 설명을 출력해 준다.
1 2 3 4 5 > pd.describe_option("max_rows" ) display.max_rows : int If max_rows is exceeded, switch to truncate view. Depending on `large_repr`, objects are either centrally truncated or printed as a summary view. 'None' value means unlimited.
참고 1 : Try These Pandas Display Configurations
2 : Pandas options