60

pandas に DataFrame があり、一部の数値は次のように科学表記法 (または指数表記法) で表されます。

                  id        value
id              1.00    -4.22e-01
value          -0.42     1.00e+00
percent        -0.72     1.00e-01
played          0.03    -4.35e-02
money          -0.22     3.37e-01
other            NaN          NaN
sy             -0.03     2.19e-04
sz             -0.33     3.83e-01

そして、科学的表記法は、簡単な比較であるべきものを不必要に困難にします。他の人を台無しにしているのは21900の値だと思います。つまり、1.0 がエンコードされています。1!

これは機能しません:

np.set_printoptions(supress=True) 

またpandas.set_printoptions、抑制も実装していません。私はpd.describe_options()絶望してすべてを見てきましたがpd.core.format.set_eng_float_format()、他のすべての浮動小数点値に対してのみオンにしているようで、オフにすることはできません。

4

6 に答える 6

87

クイック一時:df.round(4)

グローバル:pd.options.display.float_format = '{:20,.2f}'.format

于 2016-12-07T16:52:02.413 に答える
0

私はすべてのオプションを試しました

  1. pd.options.display.float_format = '{:.4f}'.format
  2. pd.set_option('display.float_format', str)
  3. pd.set_option('display.float_format', ラムダ x: f'%.{len(str(x%1))-2}f' % x)
  4. pd.set_option('display.float_format', lambda x: '%.3f' % x)

しかし、何もうまくいきませんでした。

そのため、変数 / 値 (var1) を変数 (num1 など) に割り当てるときに、round(val,5) を使用しました。

num1 = round(var1,5)

各割り当てでこのラウンド関数を使用する必要があるため、これは大雑把な方法です。しかし、これにより、それがどのように発生するかを制御し、必要なものを確実に取得できます.

于 2022-02-07T10:25:50.883 に答える