2017-12-20 6 views
1

大きな結果表の列で小数点を慎重に定義していますが、レポート内のページに収まるように転置すると(.to_latexを使用)、パンダは小数を最大数字はです。パンダ転置で小数点の丸めがリセットされます

転置中に小数精度を維持できますか?むしろ、転置後に小数点以下を定義する必要はありません。

(注:?私は転置前にデータフレーム内の文字列の列があるとき、それはこれをしない気づいたので、私はそれが私が理解していないですデータ型定義のいくつかの種類で考えています)

例コード:

df = pd.DataFrame(np.random.random([3, 3]), 
    columns=['A', 'B', 'C'], index=['first', 'second', 'third']) 

df = df.round({'A': 1, 'C': 2}) 
print(df) 
print(df.transpose()) 

出力:私が欲しい

  A   B  C 
first 0.3 0.557432 0.78 
second 0.8 0.568175 0.28 
third 0.4 0.745703 0.62 
     first second  third 
A 0.300000 0.800000 0.400000 
B 0.557432 0.568175 0.745703 
C 0.780000 0.280000 0.620000 

 first second  third 
A 0.3  0.8  0.4 
B 0.557432 0.568175 0.745703 
C 0.78  0.28  0.62 

答えて

3

転置、それは(列など)が転置行がが、同じ丸めの、同じタイプのものでない可能性があります。 Pandasはこれを修正しようと試みます(可能であれば、パフォーマンスの観点から)、丸めがリセットされます。あなたは丸めを保持したい場合は、object型にデータフレームを変換した後、転置 -

df.astype(object).T 

    first second  third 
A  0.8  0.7  0.7 
B 0.22444 0.475358 0.498084 
C  0.17  0.87  0.71 

、パンダは、変換の試みずに、オブジェクトの列に関する仮定を行わず、かつあるとして、それらは転置されていますデータ。オブジェクトとしてのデータはパフォーマンス面で自殺していることに注意してください。オブジェクトはパフォーマンス上のメリットをもたらさないため、この時点ではPythonリストを使用することもできます。

+1

あなたはすばやく入力してくださいLOL – Dark

+0

イタリック体が強調表示に適しています! –

+0

ええ、日付まで使用したことはありません。だから偉大な答えではありません – Dark

関連する問題