python - Pandas 样式的默认 float 格式

标签 python pandas pandas-styles

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

具体的格式很简单。但是为样式设置默认的 float 格式似乎不存在。

  • display.float_format 不与样式配合
  • Styler.format('{:.2f}'.format) 在字符串/整数上被阻塞。
  • Styler.set_ precision() 使用通用格式,而不是 float 。
  • PrettyPandas 没有这样的选项,并且忽略 pd.options.display.float_format

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

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

最佳答案

目前 Styler 没有这样的选项(它仍在开发中,因此您可以提出这个想法)。据我所知,您需要 Styler。 如果是这样,并且如果您仅需要为 View 使用 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 dataframe 进行子类化,以拥有自己的具有预定义样式的 dataframe 类,如上面的代码所示: Pandas subclassing guide

关于python - Pandas 样式的默认 float 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55427521/

相关文章:

python - Python 中的站点包

python - 如何使用 NLTK 正确进行多类分类?

python 3.x : H2OFrame crash - Parsing Pandas dataframe

python - 将多种样式应用于数据框特定列

python - Django 服务静态文件未加载

python - openssl,python请求错误: "certificate verify failed"

python - 如何使用 Pandas CDay 查找日期之间的工作日?

python - groupby 一列并将剩余列转换为字典

python - 如何链接 pandas 中样式函数的条件?

python - 如何使用 df.style 根据整数位置(例如 df.iloc[1,1])定义 Pandas 数据框中特定单元格的颜色?