Python 着色透视表数据帧

Python 着色透视表数据帧,python,pandas,pandas.excelwriter,Python,Pandas,Pandas.excelwriter,我使用pandas创建了一个透视表,如下所示: **Account** AA-PRD AB-PRD AC-PRD AD-PRD **Product** 10 20 30 50 PROD1 50 50 60 12 PROD2 44 78 567 678 PROD3 56 234 45 77 我想根据帐户名以开头为整个列应用颜色。例如

我使用pandas创建了一个透视表,如下所示:

**Account** AA-PRD  AB-PRD  AC-PRD  AD-PRD

**Product** 10      20      30      50

PROD1       50      50      60      12

PROD2       44      78      567     678

PROD3       56      234     45      77
我想根据帐户名以开头为整个列应用颜色。例如:如果帐户名以“AA”开头,则颜色=黄色;如果帐户名以“AB”开头,则颜色=红色

如何在python中实现这一点并将其保存到excel文件中?“Account”已用作pd.pivot_表函数中的“columns”。下面的代码用于创建透视表

df_summary_table = pd.pivot_table(df_final,values=["cost"],index = "Product", columns="Account")

您可以使用创建样式的数据框,并使用
loc
按掩码设置行:

def color(x): 
   c1 = 'background-color: yellow'
   c2 = 'background-color: red'
   c = ''
   m1 = x.columns.str.startswith('AA')
   m2 = x.columns.str.startswith('AB')

   df1 = pd.DataFrame(c, index=x.index, columns=x.columns)
   df1.loc[:, m1] = c1
   df1.loc[:, m2] = c2
   return df1

(df_summary_table.style.apply(color,axis=None)
                 .to_excel('styled.xlsx', engine='openpyxl', index=False))

这里的“x”是输入数据透视表的数据帧,对吗@jezrael@greenking-不,
df
df\u summary\u table
,然后在函数
x
中也是
df\u summary\u table
非常感谢@jezraelSay,例如,我想从这个透视表中获得如下列表:列表1=[AA-PRD,AB-PRD,AC-PRD,AD-PRD],我怎么能@jezrael?