Jupyter Notebookなどを利用しているとたまに遭遇しますが、
pandasで、DataframeやSeriesを describe()
すると、'e'(= exponential)を使った科学的な表現になることがあります。
直感的に比較しにくくて、読みにくいですよね。(これのほうが慣れている人もいるかと思いますが)
df['some_column'].describe()
---
count 2.143000e+03
mean 1.683770e+04
std 8.833939e+04
min 0.000000e+00
25% 0.000000e+00
50% 2.200000e+03
75% 1.140000e+04
max 3.160000e+06
いまいちイメージしにくいので、なんとかしたい。
この記事では、2つの方法を紹介します。
方法1: あらかじめオプションで設定しておく
floatの表示方法を、小数点以下2桁で設定する処理をつけておくと良いようです。
pd.options.display.float_format = '{:.2f}'.format
df['some_column].describe()
---
count 2143.00
mean 16837.70
std 88339.39
min 0.00
25% 0.00
50% 2200.00
75% 11400.00
max 3160000.00
オプションであればプロジェクト全体に適用できるので、常にフォーマットされていていい感じです。
方法2: フォーマット処理を追加する
describe()
の後ろで、フォーマットする処理をapplyしてあげます。
df['some_column'].describe().apply(lambda x: format(x, 'f'))
---
count 2143.000000
mean 16837.697154
std 88339.385512
min 0.000000
25% 0.000000
50% 2200.000000
75% 11400.000000
max 3160000.000000
必要なときだけフォーマットしたい場合には良さそうですね。
参考:
python - dataframe.describe() suppress scientific notation - Stack Overflow
以上!