在Python中设置pandas数据框的样式使得浮点值在小数点后有更多的零

xre*_*orn 5 python pandas pandas-styles

这是我的样式代码,使正数显示为绿色,负数显示为红色,如果我只是打印出 df ,它会显示如下数字:

25.72,36.28,0.17

但它们的显示方式如下:25.7200000, 36.2800000, 0.1700000

我该如何让它们看起来像以前一样,但具有多彩的风格?谢谢你的帮助,我对 python 很陌生

def color_negative_red(value):
    if isinstance(value, str):
        color = 'black'
        return 'color: %s' % color
    if isinstance(value, float):
        if value > 0:
            color = "green"
            return 'color: %s' % color
        if value < 0:
            color = "red"
            return 'color: %s' % color


df.style.applymap(color_negative_red)



Run Code Online (Sandbox Code Playgroud)

jez*_*ael 3

您可以通过字典指定浮点数列的格式Styler.format

df = pd.DataFrame({'a': [25.72,36.28,0.17], 'b': [9.7,-9, 9.8], 'c':list('abc')}) 


def color_negative_red(value):
    if isinstance(value, str):
        color = 'black'
        return 'color: %s' % color
    if isinstance(value, float):
        if value > 0:
            color = "green"
            return 'color: %s' % color
        if value < 0:
            color = "red"
            return 'color: %s' % color

d = dict.fromkeys(df.select_dtypes('float').columns, "{:.2%}")
df.style.applymap(color_negative_red).format(d)
Run Code Online (Sandbox Code Playgroud)

图片