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

Raj*_*h D 5 pandas

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

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被删除。

mic*_*ric 8

当您使用样式时, 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)