web-dev-qa-db-ja.com

pandas Excelシートの大きな数値を指数関数に変換することを取り除く方法は?

Excelシートに、大きな数値の2つの列があります。

しかし、read_Excel()でExcelファイルを読み取ってデータフレームを表示すると、

これらの2つの列は指数形式の科学形式で出力されます。

この形式を取り除くにはどうすればよいですか?

ありがとう

パンダでの出力

enter image description here

12

科学表記法の適用方法は、パンダのオプションを介して制御されます。

import pandas as pd
pd.set_option('display.precision',3)

pd.DataFrame({'x':[.001]})   

        x
0   0.001

だが

pd.DataFrame({'x':[.0001]})

            x
0   1.000e-04

だが

pd.set_option('display.precision',4)
pd.DataFrame({'x':[.0001]})

         x
0   0.0001

pandas Options and Settings セクションの出力を制御する方法の詳細については、pandas docs。

[〜#〜]編集[〜#〜]

これが単に表示の目的である場合、列ごとにフォーマットしながらデータを文字列に変換できます。

df = pd.DataFrame({'Traded Value':[67867869890077.96,78973434444543.44],
                   'Deals':[789797, 789878]})
df

    Deals   Traded Value
0   789797  6.786787e+13
1   789878  7.897343e+13


df['Deals'] = df['Deals'].apply(lambda x: '{:d}'.format(x))
df['Traded Value'] = df['Traded Value'].apply(lambda x: '{:.2f}'.format(x))
df    

     Deals       Traded Value
0   789797  67867869890077.96
1   789878  78973434444543.44

もう1つのより簡単な方法は、浮動小数点のみをフォーマットする次の行をコードの先頭に置くことです。

pd.options.display.float_format = '{:.2f}'.format
11