6

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

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')

错误:

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

我希望该列Number被删除。

4

1 回答 1

10

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

df = df.style.apply(highlight)
df.data = df.data.drop('Number', axis=1)     
于 2019-06-18T11:35:43.217 回答