pandas.io.formats.style.Styler.concat#

Styler.concat(other)[источник]#

Добавить другой Styler для объединения вывода в единую таблицу.

Добавлено в версии 1.5.0.

Параметры:
otherStyler

Другой объект Styler, который уже был стилизован и отформатирован. Данные для этого Styler должны иметь те же столбцы, что и исходный, и количество уровней индекса также должно быть одинаковым для корректного отображения.

Возвращает:
Styler

Примечания

Цель этого метода — расширить существующие стилизованные датафреймы другими метриками, которые могут быть полезны, но не соответствовать структуре исходного. Например, добавление строки промежуточного итога или отображение метрик, таких как средние значения, дисперсия или количество.

Стили, применяемые с помощью apply, map, apply_index и map_index, и форматирование применено с format и format_index будет сохранено.

Предупреждение

Только методы вывода to_html, to_string и to_latex в настоящее время работают с объединенными Stylers.

Другие методы вывода, включая to_excel, не работать с объединёнными Stylers.

Следует отметить следующее:

  • table_styles, table_attributes, caption и uuid все унаследованы от оригинального Styler и не other.

  • скрытые столбцы и скрытые уровни индекса будут унаследованы от исходного Styler

  • css будет унаследован от исходного Styler, а значение ключей data, row_heading и row будет дополнено foot0_. Если объединены дополнительные конкатенации, их стили будут добавлены с foot1_, ''foot_2'', и т.д., и если объединённый стиль имеет другой объединённый стиль, второй стиль будет дополнен foot{parent}_foot{child}_.

Распространенный случай использования — объединение пользовательских функций с DataFrame.agg или с описательной статистикой через DataFrame.describe. См. примеры.

Примеры

Распространенный случай использования — добавление строк итогов или других через методы, вычисленные DataFrame.agg.

>>> df = pd.DataFrame([[4, 6], [1, 9], [3, 4], [5, 5], [9, 6]],
...                   columns=["Mike", "Jim"],
...                   index=["Mon", "Tue", "Wed", "Thurs", "Fri"])
>>> styler = df.style.concat(df.agg(["sum"]).style)  
../../_images/footer_simple.png

Поскольку объединенный объект является Styler, существующая функциональность может быть использована для условного форматирования как его, так и оригинала.

>>> descriptors = df.agg(["sum", "mean", lambda s: s.dtype])
>>> descriptors.index = ["Total", "Average", "dtype"]
>>> other = (descriptors.style
...          .highlight_max(axis=1, subset=(["Total", "Average"], slice(None)))
...          .format(subset=("Average", slice(None)), precision=2, decimal=",")
...          .map(lambda v: "font-weight: bold;"))
>>> styler = (df.style
...             .highlight_max(color="salmon")
...             .set_table_styles([{"selector": ".foot_row0",
...                                 "props": "border-top: 1px solid black;"}]))
>>> styler.concat(other)  
../../_images/footer_extended.png

Когда other имеет меньше уровней индекса, чем исходный Styler, возможно расширить индекс в other, с уровнями-заполнителями.

>>> df = pd.DataFrame([[1], [2]],
...                   index=pd.MultiIndex.from_product([[0], [1, 2]]))
>>> descriptors = df.agg(["sum"])
>>> descriptors.index = pd.MultiIndex.from_product([[""], descriptors.index])
>>> df.style.concat(descriptors.style)