熊猫样式的默认浮动格式

时间:2019-03-30 02:08:54

标签: python pandas

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

特定格式很容易。但是似乎不存在为样式设置默认浮点格式的问题。

  • display.float_format与样式无关
  • Styler.format('{:.2f}'.format)对字符串/整数造成了扼杀。
  • Styler.set_precision()使用常规格式,而不是浮动格式。
  • PrettyPandas没有此类选项,并且会忽略pd.options.display.float_format

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

必须将相同的格式显式写入90%的列似乎很麻烦。是否可以通过dtype设置除默认样式外的其他样式?

1 个答案:

答案 0 :(得分:1)

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

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

相关问题