gpt4 book ai didi

python - Pandas 有条件地以粗体格式设置字段

转载 作者:行者123 更新时间:2023-12-04 11:55:43 27 4
gpt4 key购买 nike

我有一个 Pandas 数据框:

import pandas as pd
import numpy as np

df = pd.DataFrame({'foo':[1,2, 3, 4],
'bar':[[1,2,0.04], [1,2,0.04], [1,2,0.06], np.nan]})
display(df)

def stars(x, sign_level):
if x is np.nan:
return ''
else:
p_value = x[2]
if p_value < sign_level:
return '*'
else:
return ''

df['marker'] = df.bar.apply(stars, sign_level=0.05)
df

如果结果被认为是重要的,而不是添加带有星号的列,是否可以将单元格(如在 Excel 工作表中)格式化为粗体?

display DataFrame() values in bold font in one row only似乎能够格式化整行 - 我只想重新格式化一个特定的单元格

Conditionally format Python pandas cell

看起来很相似,尽管它们只更改背景,而不是粗体格式。

编辑

下面的代码已经可以更改背景颜色 - 我只是不知道如何将格式设置为粗体。
def highlight_significant(x, sign_level):
if x is np.nan:
return ''
else:
if isinstance(x, list):
p_value = x[2]
color = 'lightgreen' if p_value < sign_level else ''
if p_value < sign_level:
return 'background-color: %s' % color
else:
return ''
else:
return ''

df.style.applymap(highlight_significant, sign_level=0.05)

最佳答案

这可能有助于...

设置数据框

import pandas as pd
import numpy as np

np.random.seed(24)
df = pd.DataFrame({'A': np.linspace(1, 10, 10)})
df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4), columns=list('BCDE'))],
axis=1)
df.iloc[0, 2] = np.nan

创建功能,您可以根据您定义的条件应用添加粗体
def negative_bold(val):


bold = 'bold' if val < 0 else ''


return 'font-weight: %s' % bold

将函数应用到数据框的样式
s = df.style.applymap(negative_bold)

查看数据框,您应该发现所有负数都是粗体

enter image description here

我看这里 https://mode.com/example-gallery/python_dataframe_styling/和这里 https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html

编辑 添加到这个答案...

两种风格的结合

我有两个功能,一个突出显示黄色数字是负数,另一个使数字为负数时加粗

Negative_yellow
def negative_yellow(val):


color = 'yellow' if val < 0 else ''


return 'background-color:' + color

负粗体
def negative_bold(val):


bold = 'bold' if val < 0 else ''


return 'font-weight: %s' % bold

我像这样应用这两个数据框
df.style.\
applymap(negative_yellow).\
applymap(negative_bold)

enter image description here

我想有更优雅的方法可以做到这一点。希望这可以帮助 :)

关于python - Pandas 有条件地以粗体格式设置字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58344309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com