相关疑难解决方法(0)

如何格式化IPandy html显示的Pandas数据帧?

我怎样才能格式化IPython html显示的pandas数据帧呢

  1. 数字是正确的
  2. 数字有逗号作为千位分隔符
  3. 大浮点数没有小数位

据我所知,numpy有设施set_printoptions,我可以这样做:

int_frmt:lambda x : '{:,}'.format(x)
np.set_printoptions(formatter={'int_kind':int_frmt})
Run Code Online (Sandbox Code Playgroud)

和其他数据类型类似.

但是,当在html中显示数据帧时,IPython不会选择这些格式选项.我还需要

pd.set_option('display.notebook_repr_html', True)
Run Code Online (Sandbox Code Playgroud)

但是如上所述的1,2,3.

编辑:下面是我对2和3的解决方案(不确定这是最好的方法),但我仍然需要弄清楚如何使数字列右对齐.

from IPython.display import HTML
int_frmt = lambda x: '{:,}'.format(x)
float_frmt = lambda x: '{:,.0f}'.format(x) if x > 1e3 else '{:,.2f}'.format(x)
frmt_map = {np.dtype('int64'):int_frmt, np.dtype('float64'):float_frmt}
frmt = {col:frmt_map[df.dtypes[col]] for col in df.columns if df.dtypes[col] in frmt_map.keys()}
HTML(df.to_html(formatters=frmt))
Run Code Online (Sandbox Code Playgroud)

html python ipython pandas

29
推荐指数
2
解决办法
2万
查看次数

标签 统计

html ×1

ipython ×1

pandas ×1

python ×1