Python 正在更改熊猫的样式。数据帧:永久?

Python 正在更改熊猫的样式。数据帧:永久?,python,pandas,jupyter-notebook,Python,Pandas,Jupyter Notebook,例如,当我更改pandas.DataFrame的样式时 #为这些列着色 颜色列=['roi','ath'的百分比] (投资组合) 风格 #把负数涂成红色 .apply(λv:如果v

例如,当我更改pandas.DataFrame的样式时

#为这些列着色
颜色列=['roi','ath'的百分比]
(投资组合)
风格
#把负数涂成红色
.apply(λv:如果v<0,则为“颜色:红色”,否则为“颜色:黑色”,
子集=颜色(列)
#所选颜色为浅蓝色
.apply(lambda s:“背景色:浅蓝色”,
子集=颜色(列)
应用于数据帧的样式不是永久的

为了使它们保持不变,我可以将
(公文包_df…
部分的输出分配给相同的数据帧,如下所示:

portfolio_df = (portfolio_df ...
在Jupyter笔记本中显示这个被覆盖的
portfolio_df
,我可以看到样式精美的数据框。但是尝试在从模块导入的函数中更改样式时失败。我在函数中构造数据框,更改样式,返回(现在)从函数中选择样式化的数据帧,将其显示在Jupyter笔记本中,我看到一个非样式化的数据帧

编辑 检查样式设置操作返回值的类型

s=(公文包风格应用(…

我看到:

>>> type(s)
pandas.io.formats.style.Styler
因此,该操作不返回数据帧,而是返回一个
…Styler
对象。我错误地认为可以将此返回值重新分配给原始数据帧,从而覆盖它并使样式更改永久化

问题: 将样式应用于数据帧的操作是破坏性操作还是非破坏性操作?答案似乎是样式不会永久更改。现在,如何使其永久更改

编辑2 查看
Pandas
的源代码,我查看了
类样式器的docstring(请参见[1]):

因此,在Jupyter笔记本中,Styler有一种方法可以根据应用的样式自动呈现数据帧

否则(在iPython中)它将创建HTML

将应用样式的返回值指定给变量

s=(公文包风格应用(…

我可以在Jupyter笔记本中使用它来渲染新样式

我的理解是:我无法将数据帧输出到Jupyter笔记本中,并期望它呈现新样式。但我可以输出
s
以显示新样式


[1] 中的类样式器

pandas/pandas/io/formats/style.py


Docstring,第39行。

尝试使用此函数

df.style.applymap()

请编辑您的帖子,包括错误的完整回溯。我有一个类似的用例,我想应用一个样式并转换为latex。
df.style.applymap()