更改pandas

时间:2018-04-10 04:21:05

标签: python-3.x pandas

我在excel文件上应用了pandas,下面是数据框:

      Name  Count
0   Name 1     75
1   Name 2     55
2   Name 3     50
3   Name 4     47
4   Name 5     43
5   Name 6     42
6   Name 7     35
7   Name 8     34
8   Name 9     32
9   Name 10    16
10  Name 11     6
11  Name 12     3
12  Name 13     1
13  Name 14     1
14    Total   440

我必须对上面的数据框应用条件格式并转换为html。

我为此设置了“http://pandas.pydata.org/pandas-docs/stable/style.html#Building-Styles”样式,并在下面执行了操作:

def change_colour(val):
   return ['background-color: red' if x < 40 else 'background-color: green' for x in val]

name_column_html_1 = final_name_df.style.apply(change_colour, axis=1, subset=['Count'])
print(name_column_html_1.render())

这是我从上面的代码

获得的输出

This is the output I am getting

如何获得如下输出?

How can i output like this

2 个答案:

答案 0 :(得分:3)

您使用df.style.apply

def row_style(row):
    if row.Name != 'Total':
        if row.Count < 40:
            return pd.Series('background-color: red', row.index)
        else:
            return pd.Series('background-color: green', row.index)
    else:
        return pd.Series('', row.index)

df.style.apply(row_style, axis=1)

enter image description here

答案 1 :(得分:2)

我认为你可以在这里添加一个条件

def change_colour(val):
   return ['background-color: red' if x < 40  else ('' if x==440 else 'background-color: green') for x in val]

name_column_html_1 = final_name_df.style.apply(change_colour, axis=1, subset=['Count'])

enter image description here