将某些浮动数据框列格式化为 pandas 中的百分比 [英] Format certain floating dataframe columns into percentage in pandas
问题描述
我正在尝试在 IPython notebook 中写一篇论文,但遇到了一些显示格式的问题.假设我有以下数据帧 df
,有什么方法可以将 var1
和 var2
格式化为 2 位小数和 var3
成百分比.
I am trying to write a paper in IPython notebook, but encountered some issues with display format. Say I have following dataframe df
, is there any way to format var1
and var2
into 2 digit decimals and var3
into percentages.
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%.
The numbers inside are not multiplied by 100, e.g. -0.0057=-0.57%.
推荐答案
使用round函数替换值,并格式化百分比数字的字符串表示形式:
replace the values using the round function, and format the string representation of the percentage numbers:
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 函数将浮点数四舍五入到作为函数第二个参数提供的小数位数.
The round function rounds a floating point number to the number of decimal places provided as second argument to the function.
字符串格式允许您根据需要表示数字.您可以通过更改f
前的数字来更改显示的小数位数.
String formatting allows you to represent the numbers as you wish. You can change the number of decimal places shown by changing the number before the f
.
附言我不确定您的百分比"数字是否已经乘以 100.如果已经乘以 100,那么您将想要更改显示的小数位数,并删除百倍乘法.
p.s. I was not sure if your 'percentage' numbers had already been multiplied by 100. If they have then clearly you will want to change the number of decimals displayed, and remove the hundred multiplication.
这篇关于将某些浮动数据框列格式化为 pandas 中的百分比的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!