color only some value(s) in a list in pandas dataframe(仅对 pandas 数据框中的列表中的一些值进行着色)
本文介绍了仅对 pandas 数据框中的列表中的一些值进行着色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据帧,其中一列中的每个单元格都包含[2,19,25,39,49]
格式的列表。我想对列表common = [7,9,16,18,19,20,21,25,33,35,38,40,49]
中包含的每个列表中的各个值进行着色,因此在示例19、25和49中应该使用不同的颜色,或者这就是我想要实现的目标。
我已尝试使用:
def color_common(x):
if x in common:
color='green'
else:
color='black'
我得到的响应是,序列的真值不明确。 如果我使用x.any(),我会得到结果具有形状:(6,) 预期形状:(5,6)&Quot; 我不理解预期的形状注释,也不理解模棱两可的事实以及在哪里/如何应用any()或all()。 我可以很容易地给整个单元格或单元格的内容上色。我以前没有设计过Panda数据帧的样式,因此可能是"我的问题很愚蠢
推荐答案
将常见(您的列表)转换为正则表达式模式:
pat = re.compile(r'(' + '|'.join(map(str, common)) + r')')
(需要导入回复)。
然后定义以下格式化函数:
def myFmt(txt):
return pat.sub(r'<font color="#ff0000">1</font>', repr(txt))
(我假定所需的格式为红色,但将其更改
根据您的需要。)
要以您的方式显示格式的DataFrame,请运行:
df.style.format(myFmt)
为了测试它,我创建了一个包含以下内容的DataFrame:
A B
0 [1, 9, 25] [10, 18, 77]
1 [3, 7, 22] [4, 21, 27]
2 [11, 16, 29] [24, 38, 41]
并得到以下结果:
注意:如果要将此格式仅应用于选定的列, 传递子集参数和";所需";列的列表。这篇关于仅对 pandas 数据框中的列表中的一些值进行着色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:仅对 pandas 数据框中的列表中的一些值进行着色
基础教程推荐
猜你喜欢
- 在OpenCV中放大后,Python会捕捉图像的特定部分 2022-09-22
- Python h5py-为什么我收到广播错误? 2022-09-21
- 在 pandas 中使用带有多重索引的.loc 2022-09-22
- 如何在hdf5文件的多个组之间拆分数据? 2022-09-21
- 如何防止Groupby超越指数? 2022-09-22
- 跟在带量词的前瞻后面有什么作用? 2022-09-22
- 从顶点坐标创建三角网格 2022-09-21
- 获取多索引中某个级别的最后一个元素 2022-09-22
- 使用工作区API导入方法导入数据库笔记本(动态内 2022-09-21
- 如何将RPC与Volttron配合使用 2022-09-21