繁体   English   中英

基于索引的style.format

[英]Index based style.format

您可以使用df.style.format()来为每列指定一种格式,但是,我想要这种行为,但随后基于索引而不是基于列。 我意识到它有点棘手,因为列具有特定的数据类型,并且行可以混合。

有解决办法吗? df.style.apply()方法具有灵活性,但我认为它不支持数字格式,仅支持(CSS)样式。

一些样本数据:

import pandas as pd

df = pd.DataFrame([[150.00, 181.00, 186.00],
                   [  5.85,   3.73,   2.12]], 
                  index=['Foo', 'Bar'],
                  columns=list('ABC'))

在此处输入图片说明

如果我转置数据框,很简单:

mapper = {'Foo': '{:.0f}',
          'Bar': '{:.1f}%'}   

df.T.style.format(mapper)

在此处输入图片说明

但是我想要这种格式而不进行转置,例如:

df.style.format(mapper, axis=1)

如果目标是重新设置行值的格式,则可能不需要为此使用Styler类。 您可以使用该mapper字典通过map匹配所需的格式,并逐行apply组合。 以下应该是一个不错的开始:

df.apply(lambda s: s.map(mapper.get(s.name).format), axis=1)

谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM