使用python样式更改数据帧中行的背景颜色

使用python样式更改数据帧中行的背景颜色,python,pandas,styling,Python,Pandas,Styling,我有这样一个数据帧: name color parking_space 0 Terminal 1, 2 Green Lot 40 1 Terminal 4 Blue Lot 81 2 Terminal 5 Yellow Lot 59 3 Terminal 7 Orange Lot 45 4 Terminal 8 Red Lot

我有这样一个数据帧:

name       color parking_space
0  Terminal 1, 2   Green Lot            40
1     Terminal 4    Blue Lot            81
2     Terminal 5  Yellow Lot            59
3     Terminal 7  Orange Lot            45
4     Terminal 8     Red Lot            31
5      Long-Term         Lot            55
这是使用selenium刮取的数据。我想根据停车位的值更改整行的背景颜色。 这是我尝试过的代码,但它的输出是dataframe,它是同一个旧数据库。 代码:

terminal\u name=驱动程序。通过类名称(“tp-h-mod”)查找元素
端子颜色=驱动程序。按类别名称(“端子批次”)查找元件
终端容量=驱动程序。通过类名称(“终端百分比”)查找元素
mylist=[]
mylist1=[]
mylist2=[]
列表1=[]
对于终端名称中的数据:
mylist.append(data.text)
对于端子颜色的数据:
mylist1.append(data.text)
对于终端容量中的数据:
mylist2.append(data.text)
对于范围(6)中的i:
text=mylist2[i]
m=文本分割('%')[0]
列表1.append(m)
数据帧({'name':mylist,'color':mylist1,'parking_space':list1})
def突出显示(世界其他地区):

如果int(row.parking\u space[:2])=26和int(row.parking\u space[:2])那么,一旦您用类似于
int(row['parking\u space'][:2])
的方法解决了str/int比较,这看起来已经在中解决了

使用该问题的不可接受答案:

def highlight(row):
    if int(row.parking_space[:2]) <= 25:
        return ['background-color: green']*3
    elif int(row.parking_space[:2]) >=26 and int(row.parking_space[:2]) <=50:
        return ['background-color:yellow']*3
    else:
        return ['background-color:red']*3

df_styled
现在是一个
所以,一旦你用
int(row['parking_space'][:2])之类的东西解决了str/int比较问题,看起来这个问题已经解决了

使用该问题的不可接受答案:

def highlight(row):
    if int(row.parking_space[:2]) <= 25:
        return ['background-color: green']*3
    elif int(row.parking_space[:2]) >=26 and int(row.parking_space[:2]) <=50:
        return ['background-color:yellow']*3
    else:
        return ['background-color:red']*3

df_styled
现在是中的一个
,这里有一个关于数据帧样式的完整部分。到目前为止你尝试了什么?请用代码编辑你的文章,而不是添加评论,这样更容易阅读。当您运行该代码时,输出是什么,以及它与您想要的相比如何?@G.Anderson我编辑了我的问题。当我尝试打印数据帧时,它再次给我没有格式的旧数据帧
type()
列中的
停车位
值是什么?据我所知,您可能正在尝试对字符串值进行数字比较,例如,
'30%Full'@g.Anderson Yes type()是字符串。我已经制作了另一个列表,并从parking_space(列表1)中提取了数字值。我如何在这里使用该列表1?在中,有一个关于设置数据帧样式的完整部分。到目前为止你尝试了什么?请用代码编辑你的文章,而不是添加评论,这样更容易阅读。当您运行该代码时,输出是什么,以及它与您想要的相比如何?@G.Anderson我编辑了我的问题。当我尝试打印数据帧时,它再次给我没有格式的旧数据帧
type()
列中的
停车位
值是什么?据我所知,您可能正在尝试对字符串值进行数字比较,例如,
'30%已满@g.Anderson Yes type()是字符串。我已经制作了另一个列表,并从停车场提取了数字值(列表1)。我如何使用该列表1?使用Solutiona编辑没有运气。我得到的是相同的数据帧@G。Anderson您要输出到什么环境?这在我的jupyter环境中工作,但是pandas样式器是基于HTML的,因此您可能需要额外的步骤如果您想要表格格式的原始HTML,您可以将样式器保存到一个变量中,然后在其上调用
.render()
,以输出表格,正如发现的那样,您也可以使用solutionAgain Noy luck进行编辑。我得到的是相同的数据帧@G。Anderson您将输出到哪个环境?这在我的jupyter环境中可以使用,但是pandas样式器是基于HTML的,因此您可能需要额外的步骤如果您想要表格格式的原始HTML,您可以将样式器保存到一个变量中,然后对其调用
.render()
,以输出表格,您也可以这样做
df_styled=df.style.apply(highlight, axis=1)
<style  type="text/css" >
    #T_20b96880_c80e_11e8_a82d_a0afbd198380row0_col0 {
            background-color: yellow;
            ...