Spec-Zone.ru › pandas 2

pandas.io.formats.style.Styler.concat

Styler.concat(other)[source]

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

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

Параметры:
other:Styler

Другой объект 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_. Если цепочка конкатенаций Stylers продолжена, их стили будут добавляться с префиксом foot1_, ‘’foot_2’’, и т. д. Если стили объединены другими Stylers, второй стиль будет добавлен с префиксом 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)  

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.io.formats.style.Styler.concat.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API