#python #pandas
Вопрос:
У меня возникли проблемы с изменением цвета фона в кадре данных, следуя тому, что описано здесь: https://newbedev.com/how-to-use-python-pandas-stylers-for-coloring-an-entire-row-based-on-a-given-column
Мой подход: я создаю индекс 0 и 1, чтобы получить нужный мне цвет, затем я устанавливаю этот индекс в новый фрейм данных и применяю функцию раскраски
color_index = []
for x in range(len(sql_query.cp)):
if cod_port.index(sql_query.cp[x]) % 2 == 0:
color_index.append(0)
else:
color_index.append(1)
sql_query['Index'] = color_index
table = sql_query.set_index('Index')
def highlight(df):
if df.index == 0:
return ['background-color: white']*9
else:
return ['background-color: grey']*9
table.style.apply(highlight,axis=1)
Я получаю это сообщение об ошибке:
ValueError: style is not supported for non-unique indices.
образец таблицы:
стол
Я этого не понимаю, учитывая, что в таблице есть индекс или 0, или 1 для любой из ее строк. Я также попробовал использовать столбец 0 и 1 (вместо использования индекса), но он выдает то же сообщение об ошибке.
Не смог найти никакого другого полезного решения здесь, в стеке, или где-либо еще.
Комментарии:
1. Образец фрейма данных был бы полезен.
2. @HenryEcker Я отредактировал вопрос с образцом таблицы
3. Чтобы сгенерировать эту ошибку, панды выполняют проверку:
df.index.is_unique
иdf.columns.is_unique
. Если этоFalse
так, вы получите сообщение об ошибке. Попробуйте оценить их, прежде чем звонитьdf.style
. Вы можете использоватьdf.index.duplicated
его для поиска виновных: данное сообщение об ошибке кажется мне довольно ясным.4. Я согласен, что сообщение об ошибке кажется довольно ясным, но, к сожалению, я не смог его решить.