每当我在代码样式化后尝试执行任何操作时,都会看到此错误:
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
。
答案 0 :(得分:2)
使用样式时,df成为Styler对象,而不再是Dataframe对象。您正在尝试在Styler对象上使用Dataframe方法,但这将不起作用。 样式器对象在df.data中包含数据框,因此您应该执行以下操作:
df = df.style.apply(highlight)
df.data = df.data.drop('Number', axis=1)