如何仅对熊猫数据框的最后一行设置样式?

时间:2019-07-08 20:42:18

标签: python pandas dataframe

我可以设置熊猫数据框的样式:

import pandas as pd
import numpy as np
import seaborn as sns
cm = sns.diverging_palette(-5, 5, as_cmap=True)

df = pd.DataFrame(np.random.randn(3, 4))
df.style.background_gradient(cmap=cm)

dataframe with styling applied to all rows

但是我不知道如何只将样式应用于最后一行。 background_gradient调用中有一个subset选项,它表明我使用了index slice,但我不知道如何使最后一行具有任何样式。

这是我最接近成功的地方:

df.style.background_gradient(cmap=cm, subset=[2], axis='index')

third column, not last row styled

2 个答案:

答案 0 :(得分:3)

使用SELECT PROVIDER, LEFT([START_TIME], 13) AS [HOUR], CASE WHEN NAME = 'xyz' THEN VEHICLE_ID ELSE DEVICE_ID END AS BIKEID --DEVICE_ID as BIKEID FROM table1 GROUP BY CASE WHEN NAME = 'xyz' THEN (PROVIDER, VEHICLE_ID, LEFT([START_TIME], 13)) ELSE (PROVIDER, DEVICE_ID, LEFT([START_TIME], 13)) END 的最后一个元素作为子集。

GROUP BY

enter image description here

答案 1 :(得分:0)

如果要将样式应用于多行(包括最后一行),也可以使用 pd.IndexSlice,这很有用:

import pandas as pd
import numpy as np
import seaborn as sns


cm = sns.diverging_palette(-5, 5, as_cmap=True)
df = pd.DataFrame(np.random.randn(3, 4))

indices = pd.IndexSlice[[0, df.last_valid_index()], :]
df.style.background_gradient(cmap=cm, axis=1, subset=indices)

enter image description here