Pandas 根据索引名称突出显示行
Pandas highlight rows based on index name
我一直在努力解决如何根据索引名称突出显示 pandas 行的样式。我知道如何突出显示选定的行,但是当我必须根据索引突出显示时,代码不起作用。
设置
df = pd.DataFrame({'key': list('ABCD'), 'value': range(4)})
print(df)
key value
0 A 0
1 B 1
2 C 2
3 D 3
当键值为 'B' 或 'D'
时突出显示行
# this works
df.style.apply(lambda x: ['background: lightgreen'
if (x.key == 'B' or x.key == 'D')
else '' for i in x], axis=1)
根据索引名称突出显示行
# This DOES NOT work
df1 = df.set_index('key')
df1.style.apply(lambda x: ['background: lightgreen'
if (x.index == 'B' or x.index == 'D')
else '' for i in x], axis=1)
如何根据索引名称突出显示行?
将index
改为name
:
df1.style.apply(lambda x: ['background: lightgreen'
if (x.name == 'B' or x.name == 'D')
else '' for i in x], axis=1)
我一直在努力解决如何根据索引名称突出显示 pandas 行的样式。我知道如何突出显示选定的行,但是当我必须根据索引突出显示时,代码不起作用。
设置
df = pd.DataFrame({'key': list('ABCD'), 'value': range(4)})
print(df)
key value
0 A 0
1 B 1
2 C 2
3 D 3
当键值为 'B' 或 'D'
时突出显示行# this works
df.style.apply(lambda x: ['background: lightgreen'
if (x.key == 'B' or x.key == 'D')
else '' for i in x], axis=1)
根据索引名称突出显示行
# This DOES NOT work
df1 = df.set_index('key')
df1.style.apply(lambda x: ['background: lightgreen'
if (x.index == 'B' or x.index == 'D')
else '' for i in x], axis=1)
如何根据索引名称突出显示行?
将index
改为name
:
df1.style.apply(lambda x: ['background: lightgreen'
if (x.name == 'B' or x.name == 'D')
else '' for i in x], axis=1)