如何让Python Pandas DataFrame的mean列输出时对齐小数点?
问题描述
执行print(df.round(decimals=3))后,Pandas DataFrame的输出如下:
mean sd skew ... min max count est mean and sd 1.58895 0.494215 0.055769 ... -0.255506 3.210586 1000 est mean 1.59015 0.034379 0.092728 ... 1.485435 1.706782 1000 est sd 1.586303 0.492995 0.065619 ... -0.254994 3.336123 1000
如何实现该DataFrame中mean列的小数点对齐?
解决方法
可以通过以下几种方式实现mean列的小数点对齐:
方法1:使用style.format设置专属格式化规则
利用Pandas的样式功能,单独指定mean列的显示格式,通过固定小数位数和对齐方式实现小数点对齐:
print(df.style.format({'mean': '{:>10.5f}'}).to_string())
其中{:>10.5f}表示右对齐、总宽度为10、保留5位小数,你可以根据实际数据的长度调整宽度值和小数位数。
方法2:全局设置浮点数显示格式
通过修改Pandas的全局显示选项,让所有浮点数列统一按固定小数位数显示,自然实现对齐效果:
import pandas as pd pd.options.display.float_format = '{:,.5f}'.format print(df)
注意这种方式会影响所有DataFrame的浮点数列显示,若仅需针对mean列做调整,优先选择方法1。
方法3:手动格式化列值(改变数据类型)
直接将mean列的数值转换为格式化后的字符串,快速实现对齐(此方法会将列类型从数值转为字符串,后续无法直接做数值计算):
df['mean'] = df['mean'].apply(lambda x: '{:>10.5f}'.format(x)) print(df)
内容的提问来源于stack exchange,提问作者Fortranner
相关产品推荐
相关产品推荐

