Pandas样式的默认浮动格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas样式的默认浮动格式相关的知识,希望对你有一定的参考价值。

我在Jupyter中输出了大量的数据帧。列是字符串,整数和浮点数的混合。浮点数大多需要是'%.2f',但是一小部分需要特定的格式 - 大多数是百分比和float-as-int。

具体的格式很容易。但是,为样式设置默认浮动格式似乎不存在。

  • display.float_format不与造型合作
  • Styler.format('{:.2f}'.format)扼杀了琴弦/整体。
  • Styler.set_precision()使用通用格式,而不是浮点数。
  • PrettyPandas没有这样的选择,并且忽略了pd.options.display.float_format

到目前为止,我发现的唯一选项是编写一个函数,将自定义格式应用于某些浮点列,并将默认格式应用于所有其他列,同时忽略字符串和整数。

如果必须明确地将相同的格式写入我的列的90%,这似乎非常糟糕。有没有办法通过dtype设置相同的除默认样式?

答案

目前Styler没有这样的选项(它仍在开发中,所以你可以提出这个想法)。而且就我而言,Styler需要你。如果是这样,并且如果您只需要Styler视图,则可以使用默认的all-floats格式设置新的样式变量:

float_cols = [c for c in df.dtypes.index  if 'float' in str(df.dtypes[c])]
s = df.style.format(dict(zip(float_cols,  [lambda x: "{:.2f}".format(x)]*10)))

完成此操作后,您可以使用变量s进行任何进一步的样式操作,例如:

s = s.applymap(...)
s = s.format(...)
etc...

您还可以尝试将pandas数据子类化为子类,使您拥有具有预定义样式的数据框类,如上面的代码所示:Pandas subclassing guide

以上是关于Pandas样式的默认浮动格式的主要内容,如果未能解决你的问题,请参考以下文章

css设置左浮动

如何从片段外部清除/重置地图?

个人总结清除样式(间距浮动定位)

讲课笔记3——浮动margin失效的问题默认样式重置

Pandas 样式`.render()` - 显示前后不同的值

样式浮动和定位