我由此代碼生成一個數據幀:Python的熊貓 - 在柱突出最大值
hmdf = pd.DataFrame(hm01)
new_hm02 = hmdf[['FinancialYear','Month']]
new_hm01 = hmdf[['FinancialYear','Month','FirstReceivedDate']]
hm05 = new_hm01.pivot_table(index=['FinancialYear','Month'], aggfunc='count')
vals1 = ['April ', 'May ', 'June ', 'July ', 'August ', 'September', 'October ', 'November ', 'December ', 'January ', 'February ', 'March ']
df_hm = new_hm01.groupby(['Month', 'FinancialYear']).size().unstack(fill_value=0).rename(columns=lambda x: '{}'.format(x))
df_hml = df_hm.reindex(vals1)
然後我有一個函數來突出各列中的最大值:
def highlight_max(data, color='yellow'):
'''
highlight the maximum in a Series or DataFrame
'''
attr = 'background-color: {}'.format(color)
if data.ndim == 1: # Series from .apply(axis=0) or axis=1
is_max = data == data.max()
return [attr if v else '' for v in is_max]
else: # from .apply(axis=None)
is_max = data == data.max().max()
return pd.DataFrame(np.where(is_max, attr, ''),
index=data.index, columns=data.columns)
而然後此代碼:dfPercent.style.apply(highlight_max)
產生這樣的:
正如您所看到的,只有第一列和最後一列纔會突出顯示正確的最大值。
任何人都知道發生了什麼問題?
謝謝
嘗試'dfPercent.style.applymap(highlight_max)' –
嘿,得到一個錯誤:AttributeError:(「'str'對象沒有屬性'ndim'」,u'ccurred在index 2014/2015')? – ScoutEU
它似乎也應用在列名稱上的功能... –