每当我在代码中设置样式后尝试执行任何操作时,都会看到以下错误:
AttributeError: 'Styler' 对象没有属性 'drop'
在这种情况下,我试图在应用样式后删除一列,在其他情况下,我尝试连接 2 个数据帧,尽管它引发了类似的错误。我对 Pandas/Python 编程很陌生。
现在我已经尝试在应用样式之前放弃,这是有效的。但我的要求是在之后执行此操作。同样,我试图在它不允许的样式之后连接。我已将其简化为一个非常简单的数据框
代码:
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')
Run Code Online (Sandbox Code Playgroud)
错误:
AttributeError: 'Styler' 对象没有属性 'drop'
我希望该列Number被删除。
当您使用样式时, df 将成为 Styler 对象,而不再是 Dataframe 对象。您正在尝试在 Styler 对象上使用 Dataframe 方法,但这是行不通的。styler 对象包含 df.data 中的数据框,因此您应该执行以下操作:
df = df.style.apply(highlight)
df.data = df.data.drop('Number', axis=1)
Run Code Online (Sandbox Code Playgroud)