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

造型器。concat (其他) [来源] #

附加另一个样式器以将输出合并到一个表中。

1.5.0 版本中的新增内容。

参数
其他造型器

已设置样式和格式的另一个 Styler 对象。此样式器的数据必须具有与原始数据相同的列,并且索引级别的数量也必须相同才能正确呈现。

返回
造型器

笔记

此方法的目的是使用可能有用但可能不符合原始结构的其他指标来扩展现有样式数据框。例如,添加小计行,或显示平均值、方差或计数等指标。

apply使用、、map和应用的样式以及使用和 应用apply_indexmap_index格式将被保留。formatformat_index

警告

仅输出方法,to_html当前 适用于串联样式器。to_stringto_latex

其他输出方法(包括to_excel不适用于串联样式器。

应注意以下事项:

  • table_stylestable_attributescaptionuuid都是从原始 Styler 继承的,而不是other

  • 隐藏列和隐藏索引级别将从原始 Styler 继承

  • css将从原始 Styler 继承,并且 keys 的值datarow_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

由于连接的对象是样式器,因此现有功能可用于有条件地格式化它以及原始对象。

>>> 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)