着色枢轴 table pandas 数据框
Coloring pivot table pandas dataframe
我有一个使用 pandas 创建的枢轴 table,如下所示:
**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" color=yellow 开头,如果以 "AB" 开头,则 color = red
如何在 python 中执行此操作并将其保存到 excel 文件中? "Account" 已在 pd.pivot_table 函数中用作 "columns"。使用下面的代码创建枢轴 table
df_summary_table = pd.pivot_table(df_final,values=["cost"],index = "Product", columns="Account")
您可以使用 Styler.apply
创建样式的 DataFrame 并使用 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))
我有一个使用 pandas 创建的枢轴 table,如下所示:
**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" color=yellow 开头,如果以 "AB" 开头,则 color = red
如何在 python 中执行此操作并将其保存到 excel 文件中? "Account" 已在 pd.pivot_table 函数中用作 "columns"。使用下面的代码创建枢轴 table
df_summary_table = pd.pivot_table(df_final,values=["cost"],index = "Product", columns="Account")
您可以使用 Styler.apply
创建样式的 DataFrame 并使用 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))