【发布时间】:2017-04-12 21:15:11
【问题描述】:
通过使用Pandas Style,我试图用条件格式突出显示那些从数据框(如下所示)中(按行和按列)子集的单元格:
例如,在对第 0 行和第 1 行以及“Adam”和“Gill”列的单元格进行子集化后,如果这些单元格的值大于其相应的目标值,我想将它们突出显示为绿色,如果小于则突出显示为橙色。
但是在运行代码时我不断收到以下错误:
ValueError: ('Series lengths must match to compare', u'occurred at index 0')
我能做些什么来解决这个问题?
这是我的代码:
import pandas as pd
def AboveTarget(s): # For dataframe style
green = s > df["Target"]
orange = s < df["Target"]
return ["background-color: #86f922" if v else "background-color: #faebde" if w else "background-color: white" for v, w in zip(green, orange)]
df = pd.DataFrame({"Adam": [99.1, 95.2, 83.1],
"Gill": [99.2, 96.1, 81],
"Louis": [60, 71.5, 99.1],
"Target": [99, 98, 95]
})
html = (df.style.\
apply(AboveTarget, subset = pd.IndexSlice[0:1, ["Adam", "Gill"]], axis = 1)
)
html
【问题讨论】:
标签: python html pandas dataframe