我在Jupyter中有大量的 Dataframe 要输出,列是字符串、int和浮点数的混合,浮点数大多需要是'%.2f'
,但是一小部分需要特定的格式--大多数是百分比和float-as-int。
具体的格式设置很简单。但是为样式设置默认的浮动格式似乎不存在。
display.float_format
不与样式配合使用Styler.format('{:.2f}'.format)
在字符串/整数上扼流圈。Styler.set_precision()
使用通用格式,而不是浮点格式。- PrettyPandas没有这样的选项,并且忽略
pd.options.display.float_format
到目前为止,我找到的唯一选择是编写一个函数,将自定义格式应用于某些浮点型列,将默认格式应用于所有其他列,同时忽略字符串和整型。
这看起来非常笨拙,必须显式地为90%的列写入相同的格式。有没有办法通过dtype设置一个除默认样式外相同的样式?
2条答案
按热度按时间gg0vcinb1#
目前Styler还没有这样的选项(它还在开发中,所以你可以提出这个想法)。就我所知,Styler是你所需要的。如果是这样,如果你只需要Styler的视图,你可以设置新的样式变量与默认的全浮动格式:
完成此操作后,您可以使用变量s进行任何进一步的样式处理,如:
您也可以尝试将pandas dataframe子类化,使其拥有自己的dataframe类,并具有预定义的样式,如上面的代码所示:Pandas分类指南
izkcnapc2#
对于Pandas,我发现最有用的解决方案是在脚本的早期包含以下行:
pd.选项.显示.浮点格式=“{:,.0f}".格式
当然,小数位数以及“千位”分隔符可以根据需要进行调整。
运行状况警告-通过使用此选项,所有输出(例如,打印、显示、描述等)都将对浮点输出进行类似调整。这可能会使脚本的问题解决变得复杂,因为显示的数字可能与实际显示的数字不同。