[Python] How to delete a column after applying styler function

Discussão em 'Python' iniciado por Stack, Fevereiro 17, 2025.

  1. Stack

    Stack Membro Participativo

    How to delete column after applying styler? Here's my style function:

    def highlight_late(x):
    c1 = 'background-color: red'
    #condition
    m = x['price_1'] < x['price_main_x']
    m2 = x['price_2'] < x['price_main_x']
    m3 = x['price_3'] < x['price_main_x']
    #empty DataFrame of styles
    df1 = pd.DataFrame('', index=x.index, columns=x.columns)

    #set column price_2 by condition
    df1.loc[m, 'price_1'] = c1
    df1.loc[m2, 'price_2'] = c1
    df1.loc[m3, 'price_3'] = c1
    df1.loc[m, 'url_x'] = c1
    df1.loc[m2, 'url_y'] = c1
    df1.loc[m3, 'url'] = c1

    return df1


    Method below return me TypeError: 'Styler' object does not support item deletion

    styles = myDF.style.apply(highlight_late, axis=None)
    del styles['price_1']
    del styles['price_2']
    del styles['price_3']
    styles.to_excel('test.xlsx')


    i also try:

    mydf.style.hide_columns(['price_1', 'price_2', 'price_3']).to_excel('test.xlsx')


    its not work, columns wont hide.

    even this simple script from https://pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.hide_columns.html wont work

    df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=["a", "b", "c"])
    df.style.hide_columns(["a", "b"])
    df.to_excel('test2.xlsx')

    Continue reading...

Compartilhe esta Página