1. ホーム
  2. python

[解決済み] pandasで特定のフローティングデータフレームの列をパーセンテージにフォーマットする

2023-02-14 09:46:28

質問

IPython notebookで論文を書こうとしているのですが、表示形式についていくつか問題が発生しました。次のようなデータフレームがあるとします。 df をフォーマットする方法はありますか? var1var2 を2桁の小数に変換し var3 をパーセントに変換します。

       var1        var2         var3    
id                                              
0    1.458315    1.500092   -0.005709   
1    1.576704    1.608445   -0.005122    
2    1.629253    1.652577   -0.004754    
3    1.669331    1.685456   -0.003525   
4    1.705139    1.712096   -0.003134   
5    1.740447    1.741961   -0.001223   
6    1.775980    1.770801   -0.001723    
7    1.812037    1.799327   -0.002013    
8    1.853130    1.822982   -0.001396    
9    1.943985    1.868401    0.005732

中の数字は100倍されていません。例:-0.0057=-0.57%。

どのように解くのですか?

round関数を使って値を置き換え、パーセンテージの文字列表現をフォーマットしてください。

df['var2'] = pd.Series([round(val, 2) for val in df['var2']], index = df.index)
df['var3'] = pd.Series(["{0:.2f}%".format(val * 100) for val in df['var3']], index = df.index)

round関数は、浮動小数点数を第2引数で指定された小数点以下の桁数に丸める関数です。

文字列の書式設定により、数値を思い通りに表現することができます。の前の数字を変更することで表示される小数点以下の桁数を変更できます。 f .

p.s. あなたの「パーセント」数字がすでに100倍されているかどうかはわかりませんでした。もしそうであれば、表示される小数の数を変更し、100 の乗算を削除する必要があります。