pandas.io.formats.style.Styler.concat#
- Styler.concat(other)[源代码][源代码]#
将另一个 Styler 附加到组合输出为一个表格。
Added in version 1.5.0.
- 参数:
- 其他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_
为前缀。如果有更多的连接,它们的样式将以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)
由于连接的对象是一个 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)
当
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)