在数据框中样式化后执行操作

时间:2019-06-18 11:12:22

标签: pandas

每当我在代码样式化后尝试执行任何操作时,都会看到此错误:

  

AttributeError:“ Styler”对象没有属性“ drop”

在这种情况下,我尝试在应用样式后删除一列,在其他情况下,我尝试连接2个数据帧,尽管它会引发类似的错误。我是Pandas / Python编程的新手。

就目前而言,在尝试应用样式之前,我尝试删除该样式。但是我的要求是之后再做。同样,我试图将不允许的AFTER样式进行串联。我将其简化为一个非常简单的数据框

代码:

df = pd.DataFrame([["A", 1],["B", 2]], columns=["Letter", "Number"])
def highlight(s):
    return ['background-color: red']
df = df.style.apply(highlight)
df = df.drop('Number', axis=1)  
with pd.ExcelWriter('testcolor.xlsx') as writer: 
    df.to_excel(writer,sheet_name = 'test')

错误:

  

AttributeError:“ Styler”对象没有属性“ drop”

我希望删除列Number

1 个答案:

答案 0 :(得分:2)

使用样式时,df成为Styler对象,而不再是Dataframe对象。您正在尝试在Styler对象上使用Dataframe方法,但这将不起作用。 样式器对象在df.data中包含数据框,因此您应该执行以下操作:

df = df.style.apply(highlight)
df.data = df.data.drop('Number', axis=1)