我在Jupyter中输出了大量的数据帧。列是字符串,整数和浮点数的混合。浮点数大多需要是'%.2f'
,但是一小部分需要特定的格式 - 大多数是百分比和float-as-int。
具体的格式很容易。但是,为样式设置默认浮动格式似乎不存在。
display.float_format
不与造型合作Styler.format('{:.2f}'.format)
扼杀了琴弦/整体。Styler.set_precision()
使用通用格式,而不是浮点数。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