python - Pandas 样式的默认浮点格式
问题描述
我有大量数据帧要在 Jupyter 中输出。这些列是字符串、整数和浮点数的混合。浮点数主要需要 be '%.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 用于视图,您可以设置新的样式变量,默认全浮点格式:
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 子类化指南
推荐阅读
- swift - 当我想在 CoreData 中保存某些内容时,Lottie Animation 停止工作
- html - 从粘性元素后面窥视的引导图标
- java - 使用 Android Studio 编辑 Firebase 数据库中的特定值
- python - 如何将数组编码为base64将其保存到文件然后读取并解码
- excel - 如果单元格包含字符串“---”,则删除另一个单元格
- time - 程序如何估计完成一个过程需要多长时间?
- debian - 我无法在我的 Debian 上安装 Robotframework Ride
- php - 多个 MySQL 查询(第一个根据用户获取 id)第二个获取数据库中具有 id 的另一个项目的信息
- javascript - 每当我在页面上突出显示一个元素时,它会改变它的外观并插入项目符号?
- javascript - 将问题传递选择器作为参数输入到已调度的操作