如何使用条件按列设置数据框的样式?



如果股价单元格高于目标价格,我想将股价单元格涂成绿色,如果低于警报价格,则将其涂成红色,并且我的代码不起作用,因为它不断弹出错误。

这是我使用的代码

temp_df.style.apply(lambda x: ["background: red" if v < x.iloc[:,1:] and x.iloc[:,1:] != 0 else "" for v in x], subset=['Share Price'], axis = 0)
temp_df.style.apply(lambda x: ["background: green" if v > x.iloc[:,2:] and x.iloc[:,2:] != 0 else "" for v in x], subset=['Share Price'], axis = 0)

谁能给我一个关于如何做到这一点的想法?

Index Share Price Alert/Entry   Target
0   622.0   424.0   950.0
1   6880.0  5200.0  7450.0
2   62860.0 40000.0 60000.0
3   7669.0  5500.0  8000.0
4   5295.0  3500.0  5500.0
5   227.0   165.0   250.0
6   3970.0  3200.0  4250.0
7   1300.0  850.0   1650.0
8   8480.0  6500.0  8500.0
9   11.3    0.0 0.0
10  66.0    58.0    75.0
11  7.3 6.4 9.6
12  114.8   75.0    130.0
13  172.3   90.0    0.0
14  2.6 2.4 3.2
15  76.8    68.0    85.0
16  19.6    15.4    21.0
17  21.9    11.0    18.6
18  35.4    29.0    42.0
19  12.5    9.2 0.0
20  15.5    0.0 0.0
21  449.8   0.0 0.0
22  4.3 3.6 5.0
23  47.4    40.0    55.0
24  0.6 0.5 0.6
25  49.2    45.0    72.0
26  13.9    0.0 0.0
27  3.0 2.4 4.5
28  2.4 1.8 4.2
29  54.0    0.0 0.0
30  293.5   100.0   250.0
31  190000.0    140000.0    220000.0
32  52200.0 46000.0 58000.0
33  100500.0    75000.0 115000.0
34  4.9 3.8 6.5
35  0.2 0.0 0.0
36  1430.0  980.0   1450.0
37  1585.0  0.0 0.0
38  15.6    11.0    18.0
39  3.3 2.8 6.0
40  52.5    45.0    68.0
41  46.5    35.0    0.0
42  193.6   135.0   0.0
43  122.8   90.0    0.0
44  222.6   165.0   265.0

前提是"索引"也是一列:

temp_df.style.apply(lambda x: ["background: green" if (i==1 and v > x.iloc[3] and x.iloc[3] != 0) else ("background: red" if (i==1 and v < x.iloc[2]) else "") for i, v in enumerate(x)], axis=1)

i:旨在定义要设置样式的列Share Price(列:1(

相关内容

  • 没有找到相关文章

最新更新