Pandas Dataframe 按行显示精度

问题描述 投票:0回答:2

我正在使用 pandas 将结果输出到 LaTeX。我目前设置的精度(要打印的小数位数)如下:

import pandas as pd
df = pd.DataFrame({'a':[1234.56, 0.01, 1234.56],'b':[1234.56, 0.01, 1234.56]})

pd.set_option('display.float_format', lambda x: '%.2f' % x)

df.to_latex('filename.tex')

这个效果真的很好。但我希望数据帧(以及生成的 TeX 表)的特定行的精度有所不同。用熊猫可以做到这一点吗?

对于此示例,我希望第 0 行和第 2 行打印时不带小数位,第 1 行打印时带 2 位小数,如下所示:

 df
      a     b
 0    1234  1234
 1    0.01  0.01
 2    1234  1234
python pandas latex precision
2个回答
2
投票

这是一个蹩脚的答案,我太累了,无法想出更好的答案。但在我给你讲了一半关于问题质量的知识后,我不想让你悬而未决。

p = pd.Series([1, 2, 0], df.index)

df.apply(lambda x: x.map(p.map(lambda x: '{{:0.{}f}}'.format(x).format).loc[x.name]), 1)

        a       b
0  1234.6  1234.6
1    0.01    0.01
2    1235    1235

0
投票

是的,这对我有用,谢谢。现在,弄清楚这两行代码是如何工作的。

© www.soinside.com 2019 - 2024. All rights reserved.