我想给我的数据框中的一列上色(使用在给定答案中建议的方法,链接如下).所以(只取我的数据帧的第一行)我用以下代码表达式更改了 colored颜色 :

data1.head(1).style.set_properties(**{'background-color': 'red'}, subset=['column10'])

然而,它会导致另一个问题:它改变了我的数据帧的格式(=在小数点后添加更多的0).我有没有可能保留我的数据帧的旧格式,同时仍然能够给列着色?提前谢谢你

旧输出(第一行):

2021-01-02  32072   0.0 1831    1831    1.0 1   0   1   0.0 1.0 

新输出(第一行):

2021-01-02  32072   0.000000    1831    1831    1.000000    1   0   1   0.000000    1.000000    1.000000    

Colouring one column of pandas dataframe

推荐答案

~~编辑,因为我看到您需要行而不是列:

一旦应用了style代码,它就会将Pandas 数据帧从pandas.core.frame.DataFrame对象更改为pandas.io.formats.style.Styler对象.Styler对象处理浮点数的方式与处理Pandas DataFrame对象的方式不同,并生成您在代码中看到的结果(更多小数点).您可以将格式更改为style.format,以获得所需的结果:

data = [{"col1":"2021-01-02", "col2":32072,   "col3":0.0, "col4":1831,    "col5":1831,    
           "col6":1.0, "col7":1,   "col8":0,   "col9":1,   "column10":0.0, "col11":1.0}] 
data1 = pd.DataFrame(data)
data1 = data1.style.format(precision=1, subset=list(data1.columns)).set_properties(**{'background-color': 'red'}, subset=['column10'])
data1

输出:

enter image description here

一旦使用了Style,它就不再是Pandas 数据帧,而是Styler对象.因此,适用于Pandas 数据帧的常规命令不再适用于新样式的数据帧(例如,只执行head(10)不再起作用).但是,也有一些可行的办法.如果要在应用样式后仅查看Styler的前10行,则可以导出所使用的样式,然后重新应用它以仅查看前10行:

data = [{"col1":"2021-01-02", "col2":32072,   "col3":0.0, "col4":1831,    "col5":1831,    
           "col6":1.0, "col7":1,   "col8":0,   "col9":1,   "column10":0.0, "col11":1.0}] 
data1 = pd.DataFrame(data)
data1 = data1.append(data*20).reset_index(drop=True)
data1 = data1.style.format(precision=1, subset=list(data1.columns)).set_properties(**{'background-color': 'red'}, subset=['column10'])

提供了一个大型数据帧:

enter image description here

然后使用此代码之后将只显示其中的10行:

style = data1.export()
data1.data.head(10).style.use(style).format(precision=1, subset=list(data1.columns))

Now it is only showing the first 10 rows: enter image description here

Python相关问答推荐

如何在具有重复数据的pandas中对groupby进行总和,同时保留其他列

如何在虚拟Python环境中运行Python程序?

用NumPy优化a[i] = a[i-1]*b[i] + c[i]的迭代计算

无法定位元素错误404

如何将多进程池声明为变量并将其导入到另一个Python文件

matplotlib + python foor loop

如何排除prefecture_related中查询集为空的实例?

pandas:对多级列框架的列进行排序/重新排序

polars:有效的方法来应用函数过滤列的字符串

在Python中控制列表中的数据步长

在电影中向西北方向对齐""

如何从比较函数生成ngroup?

数据框,如果值在范围内,则获取范围和

有没有办法在不先将文件写入内存的情况下做到这一点?

没有内置pip模块的Python3.11--S在做什么?

为什么我只用exec()函数运行了一次文件,而Python却运行了两次?

在聚合中使用python-polars时如何计算模式

奇怪的Base64 Python解码

迭代工具组合不会输出大于3的序列

使用OpenPYXL切换图表上的行/列