Чтобы применить выделение, вы можете использовать:
Styler.applymap()
Styler.apply()
Разница между ними заключается в том, как вы хотите выбирать элементы, поскольку applymap () работает поэлементно, а apply () работает с столбцом - / row- / table -wise.
Оба метода требуют, чтобы функция генерировала атрибуты CSS, которые вы хотите изменить. В вашем случае, если вы поместите его в оператор if, это может быть примерно так:
import pandas as pd
df = pd.DataFrame(np.random.randint(-4,4, size=(5,5)))
def background_cell(x, row_idx, col_idx, color):
b_color = 'background-color: green'
df_styler = pd.DataFrame('', index=x.index, columns=x.columns)
df_styler.iloc[row_idx, col_idx] = b_color
return df_styler
df.style.apply(background_cell, row_idx=1, col_idx=1, color='green', axis=None)
Это изменит фон ячейки [1,1]. Вы можете вызвать df.style.apply () с другим цветом и индексом ячейки, которую хотите изменить.
Я думаю, вы переписали Styler в переменной DataFrame, набрав df = df.style.apply (...) вот почему вы его потеряли и больше не могли его модифицировать. Стиль - это метод, который вы можете использовать для отображения DataFrame, поэтому вам следует использовать его всякий раз, когда вы его печатаете, хотя он не будет атрибутом самого DataFrame.