pandas 출력 포맷팅

FAQ - pandas 출력 포맷팅

  • Q: pandas 포맷팅 - 숫자에 e가 표시여부, 소수점 자리수 등을 지정하여 읽기 쉽게 하고자 합니다
  • A: pd.set_option()으로 상세한 조정이 가능합니다
2017 https://financedata.github.io
In [1]:
import pandas as pd
import numpy as np
In [2]:
df = pd.DataFrame()
df['A'] = np.random.rand(5) * 10000
df
Out[2]:
A
0 6624.065033
1 5576.084574
2 5984.188094
3 6306.194602
4 8533.817736

숫자 표현에 e는 10 승수를 표현합니다. 이런 표기법을 과학적 표기법(Scientific notation)이라고 하며 아주 큰 수나, 아주 작을 수를 표현하는데 효과적이다.

pandas.option 객체 pandas.set_option() 함수를 사용하여 출력 형태를 다양하게 지정할 수 있다. 예를 들어, 소수점 이하 2자리만 표현하고 싶다면 아래와 같이 할 수 있다. 이때, f 혹은 e 를 사용하여 과학적 표기법을 쓸지 여부를 지정할 수 있다.

In [3]:
# 과학적 표기법(Scientific notation)을 사용하지 않는 경우

pd.options.display.float_format = '{:.2f}'.format
df
Out[3]:
A
0 6624.07
1 5576.08
2 5984.19
3 6306.19
4 8533.82
In [4]:
# 과학적 표기법(Scientific notation)

pd.set_option('display.float_format', '{:.2e}'.format)
df
Out[4]:
A
0 6.62e+03
1 5.58e+03
2 5.98e+03
3 6.31e+03
4 8.53e+03
In [5]:
pd.set_option('display.float_format', '{:.2f}'.format) # 항상 float 형식으로
pd.set_option('display.float_format', '{:.2e}'.format) # 항상 사이언티픽
pd.set_option('display.float_format', '${:.2g}'.format)  # 적당히 알아서

지정한 표기법을 원래 상태로 돌리려면 None을 지정한다.

In [6]:
pd.set_option('display.float_format', None)
df
Out[6]:
A
0 6624.065033
1 5576.084574
2 5984.188094
3 6306.194602
4 8533.817736

댓글