Раскраски в пандах

Я могу импортировать данные из файла excel с помощью Pandas, используя:

xl = read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA']) 

Теперь, когда у меня есть все данные в xl как DataFrame. Я хотел бы покрасить некоторые ячейки в эти данные на основе условий, определенных в другой функции, и экспортировать их (с цветовым кодированием) в файл Excel.

Может ли кто-нибудь сказать мне, как мне это сделать?

Спасибо.

3 Solutions collect form web for “Раскраски в пандах”

У Pandas есть относительно новая функция Styler где вы можете применять манипуляции типа условного форматирования в dataframes. http://pandas.pydata.org/pandas-docs/stable/style.html

Вы можете использовать некоторые из своих встроенных функций, таких как background_gradient или bar для репликации превосходных функций, таких как условное форматирование и бары данных. Вы также можете форматировать ячейки, чтобы отображать проценты, float, ints и т. Д. Без изменения исходного фрейма.

Вот пример типа диаграммы, которую вы можете сделать с помощью Styler (это бессмысленный график, а просто предназначенный для демонстрации возможностей):

введите описание изображения здесь

Чтобы использовать все функциональные возможности Styler вы должны получить Styler.applymap() API-интерфейсам Styler.apply() и Styler.applymap() . Они позволяют создавать пользовательские функции и применять их к столбцам, строкам или элементам таблицы. Например, если бы я хотел пометить зеленую ячейку + iive и a -ive ячейку красного цвета, я бы создал функцию

 def _color_red_or_green(val): color = 'red' if val < 0 else 'green' return 'color: %s' % color 

и назовите его на моем объекте Styler , т. е. df.style.applymap(_color_red_or_green) .

Что касается экспорта обратно в Excel, насколько я знаю, это не поддерживается в Styler но я, вероятно, перейду по пути xlsxwriter, если вам НЕОБХОДИМО использовать Excel по какой-то причине. Однако, по моему опыту, это отличная чистая альтернатива Python, например, наряду с графиками matplotlib и электронными сообщениями / отчетами.

попробуйте что-то вроде этого:

 with pandas.io.excel.ExcelWriter(path=Path, engine="xlsxwriter") as writer: sheet = writer.book.worksheets()[0] sheet.write(x, y, value, format) #format is what determines the color etc. 

Подробнее здесь: https://xlsxwriter.readthedocs.org/format.html

Существует много идей о стилизации ячеек на веб-сайте Pandas . Однако это уже упоминалось: это новая функция и все еще находится в разработке. Мы добавим функции и, возможно, вносим изменения в будущие выпуски

  • pandas + dataframe - выбор по частичной строке
  • Как создать DataFrame из строк при сохранении существующей схемы?
  • Таблица частот для одной переменной
  • Python Pandas нарезает мультииндекс индексом второго уровня (или любым другим уровнем)
  • Лучший способ присоединиться / объединиться в пандах
  • условная замена основана на предыдущем значении в том же столбце pandas dataframe python
  • Как указать индекс dtype при чтении csv-файла в DataFrame?
  • Абсолютное значение для столбца в Python
  • Python - лучший язык программирования в мире.