Pandas:为零设置小数位数



我有一个显示回归输出的数据帧。我想把它做成出版用的样式。我使用df.round(4)将所有值四舍五入(然后将它们放在括号之间(。但是零没有任何小数点。

parameter  pvalue   significance 4a
4   x1          0.1119     0.0257   **
4   x1_SE      (0.0502)     
3   x2          0.5996     0        ***
3   x2_SE      (0.1571)  

出于光学原因,我也希望零的小数位数相同。结果应该是这样的:

parameter  pvalue   significance 4a
4   x1          0.1119     0.0257   **
4   x1_SE      (0.0502)     
3   x2          0.5996     0.0000   ***
3   x2_SE      (0.1571)  

更新

您可以将全局panda属性设置为显示尾随零。

pd.options.display.float_format = '{:,.4f}'.format

原始

我发现后面的零很难处理。一种解决方法是创建一个列,该列具有相应的带有尾随零的str值。

df['pvalueFormatted'] = df['pvalue'].apply(lambda x: '{:,.4f}'.format(x))

或者,如果您想将其保存为.csv,可以使用float_format:

df.to_csv('output.csv', float_format="%,.4f")

最新更新