我正在使用pandas生成一些带有大/小数字的大型LaTex表:
df = pd.DataFrame(np.array(outfile),columns=['Halo','$r_{v}$','etc'])
df.to_latex("uvFlux_table_{:.1f}.tex".format(z))
其中“outfile”只是一个数字表(3列)。..我怎样才能得到outfile中的数字格式如下:
$1.5x10^{12}$ & $1.5x10^{12}$ & $1.5x10^{-12}$
就像你在科学出版物上看到的那样。.. vs默认值
0.15e13 & 0.15e13 & 0.15e-11
??
3条答案
按热度按时间y53ybaqx1#
定义
你可以在dataframe上applymap这个函数(也可以在series上应用)
这给已经特克斯输出木星笔记本电脑。请注意,这里的转义可能很棘手。其他更快的解决方案?
pbpqsu0x2#
感谢@Quickbeam2k1的回答。我已经扩展到处理0和负数:
nvbavucw3#
我认为在这里不重新发明轮子可能是一个更好的主意,并使用python给我们的float格式化工具:
这个版本对于零、负数等是安全的。它是圆的(其他人都没有!)。它还提供了使用
"g"
代码的选项,如果小数点在您设置的精度范围内,则将使用小数显示数字。此外,如果还传递
escape=False
,则可以将这些作为格式化程序传递给.to_latex
方法。我有一个格式化程序 Package 器,它可以进行类型检查,如果遇到字符串,则会转义。