LoginSignup
22
9

More than 3 years have passed since last update.

pandasのdescribe()で'e'が出ないようにしたい

Posted at

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

オプションであればプロジェクト全体に適用できるので、常にフォーマットされていていい感じです。

参考: python - How to display pandas DataFrame of floats using a format string for columns? - Stack Overflow

方法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

以上!

22
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
9