[英]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.