我正在try 使用https://pandas.pydata.org/docs/reference/api/pandas.io.formats.style.Styler.format.html格式化数据帧.

但是,我没有得到想要的结果:

>>> df = pd.DataFrame([[np.nan, 1.534231, 'A'], [2.32453251, np.nan, 3.0]])
>>> df.style.format(na_rep='MISS', precision=3)
<pandas.io.formats.style.Styler object at 0x7f0b32eff740>
>>> print(df.head())
          0         1    2
0       NaN  1.534231    A
1  2.324533       NaN  3.0

>>> print(pd.__version__)
1.5.3

使用

python --version
Python 3.12.0rc3

我到底做错了什么?

推荐答案

Styler.format用于将特定格式应用于pandas DataFrame.因此,数据框中的数据不会更改,但当您在特定环境中显示它时,样式将应用于数据. 因此,当您编写以下代码时,

>>> df = pd.DataFrame([[np.nan, 1.534231, 'A'], [2.32453251, np.nan, 3.0]])
>>> df.style.format(na_rep='MISS', precision=3)
<pandas.io.formats.style.Styler object at 0x7f0b32eff740>

请注意最后一行,其中返回了一个Styler对象.

您可以将这个Styler对象保存在另一个变量中,如下所示.

现在,为了显示这个格式化的df,让我们将环境设置为HTML Web浏览器环境.

由于Stylerpandas.DataFrame都有to_html()方法,让我们将df转换为html code并在Web浏览器中查看.

>>> import webbrowser
>>> with open('str.html', 'w') as f:
        s=df.style.format(na_rep='MISS', precision=3)
        s.to_html(f)
>>> webbrowser.open_new_tab('str.html') 
True

上面的代码弹出一个新选项卡,其中页面'str.html'存储在本地,您可以在其中轻松查看格式化的df.

Python相关问答推荐

使用Python Great Expectations和python-oracledb

inspect_asm不给出输出

使用argsorted索引子集索引数组

如何在Python中使用ijson解析SON期间检索文件位置?

大Pandas 胚胎中产生组合

将整组数组拆分为最小值与最大值之和的子数组

如何使用html从excel中提取条件格式规则列表?

为什么这个带有List输入的简单numba函数这么慢

avxspan与pandas period_range

导入...从...混乱

python中字符串的条件替换

无法连接到Keycloat服务器

如何使用OpenGL使球体遵循Python中的八样路径?

Python—压缩叶 map html作为邮箱附件并通过sendgrid发送

巨 Python :逆向猜谜游戏

Polars Group by描述扩展

以异步方式填充Pandas 数据帧

根据客户端是否正在传输响应来更改基于Flask的API的行为

使用Python异步地持久跟踪用户输入

Tensorflow tokenizer问题.num_words到底做了什么?