Python 使用样式器(熊猫)为数据帧着色后格式化数字

Python 使用样式器(熊猫)为数据帧着色后格式化数字,python,pandas,dataframe,formatting,styling,Python,Pandas,Dataframe,Formatting,Styling,我在pandas中创建了一个数据框,我希望使用颜色索引(低值红色,高值绿色)给单元格着色。我成功地做到了这一点,但是颜色使我无法格式化单元格 import pandas as pd df = pd.DataFrame({'a': [0.5,1.5, 5], 'b': [2, 3.5, 7] }) df = df.style.background_gradient(cmap='RdYlGn') df 返回 但是,当我尝试使用df.round(2)来格

我在pandas中创建了一个数据框,我希望使用颜色索引(低值红色,高值绿色)给单元格着色。我成功地做到了这一点,但是颜色使我无法格式化单元格

import pandas as pd

df = pd.DataFrame({'a': [0.5,1.5, 5],
                   'b': [2, 3.5, 7] })

df = df.style.background_gradient(cmap='RdYlGn')
df

返回

但是,当我尝试使用
df.round(2)
来格式化数字时,会弹出以下错误:

AttributeError:'Styler'对象没有属性'round'

有人能告诉我出了什么问题吗?

看一下。
df.style
属性返回一个
Styler
实例,而不是数据帧。从pandas Styleing guide中的示例来看,数据帧操作(如取整)似乎是先完成的,样式设置是最后完成的。熊猫造型指南中有。该部分提出了三种不同的显示值精度的选项

将熊猫作为pd导入
df=pd.DataFrame({'a':[0.5,1.5,5],
‘b’:[2,3.5,7]})
#备选案文1。在使用样式之前先进行圆化。
style=df.round(2.style.background_gradient(cmap='RdYlGn'))
风格
#备选案文2。使用选项_上下文设置精度。
使用pd.option_上下文('display.precision',2):
style=df.style.background\u梯度(cmap='RdYlGn')
风格
#备选案文3。使用styler的.set_precision()方法。
style=df.style.background\u渐变(cmap='RdYlGn')。设置精度(2)
风格

选项1对我不起作用,但2和3正是我想要的。谢谢!很高兴听到这个消息。如果此答案解决了您的问题,请单击绿色复选标记将其标记为正确。