2016-09-14 4 views
2

パンダによるデータフレーム値の0.40から0.4への自動変換を停止するにはどうすればよいですか?pandas:パンダの自動停止から0.40を表示する0.4

私は解決策が「表示」オプションと書式設定と関係していると思いますか?私は情報を見つけることができません。

何かのように:

display.float_format(#.##) 

答えて

3

あなたはdisplay.float_formatためset_optionに引数としてフォーマット文字列オブジェクトを渡す必要があります:

In [167]: 
pd.set_option('display.float_format', '{0:.2f}'.format) 
df = pd.DataFrame(np.random.randn(5,3)) 
df 

Out[167]: 
     0  1  2 
0 0.84 -0.91 -1.44 
1 1.82 0.38 -0.47 
2 -0.07 2.09 1.81 
3 0.09 -2.05 -0.92 
4 0.26 -1.94 -1.09 

基礎となるデータは影響を受けません:

In [168]: 
df.iloc[0][0] 

Out[168]: 
0.84179409715165521 
+0

これはまさに私が探していたものです。 dfを印刷すると値は正しく表示されますが、dfを書き出してもExcelになると、それでも0.4になります。何か案が? –

+0

これは表示フォーマットの問題ですか?たとえば、特定のセルに移動したときに表示される値は何ですか?私はこれがデータがどのようにエクスポートされるかに影響するかどうかはわかりませんが、Pythonのモジュールであるpandasを熟知していません。 'to_excel'も' float_format' argをサポートしていると言っています:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_excel.htmlこれで試してみることができます – EdChum

+0

それは何の効果もありませんでしたが、それほど大事なことではありません。 –

0

リスト内包表記を使用して特定の値をすべて変更するシリーズ。 .2を任意の精度レベルに変更します。

a = ["{0:.2f}".format(val) for val in df.column_name] 
df.loc[:,'column_name'] = a 
関連する問題