Я очень новичок в программе Python
Я хочу изменить цвет фона в сводной таблице result.color изменяет условие на основе другого столбца, и если столбец Flag_Status имеет более одного значения, цвет должен быть белым.
<pre>
Source Data
JobID,Name,Flag_Statge,Runid,Value
'JOB1','Q1','L1',1,200
'JOB1','Q1','L1',1,300
'JOB1','Q1','L4',1,214
'JOB1','Q1','L2',1,364
'JOB1','Q2','L1',1,214
'JOB1','Q3','L3',1,176
'JOB1','Q4','L2',1,82
'JOB1','Q1','L2',2,201
'JOB1','Q2','L1',2,224
'JOB1','Q3','L4',2,196
'JOB1','Q4','L1',2,182
'JOB1','Q1','L3',3,201
'JOB1','Q2','L1',3,224
'JOB1','Q2','L1',3,189
'JOB1','Q3','L2',3,196
'JOB1','Q4','L3',3,182
import pandas as pd
import numpy as np
def fstatus(fbgcolor):
return {
'L1': 'red',
'L2': 'green',
'L3': 'blue',
'L4': 'yellow'
}[fbgcolor]
sf = pd.read_excel(r'attachedexcel_filepath\PivotExam.xlsx')
df = pd.DataFrame(sf)
df = df.pivot_table(values=['Value'],index =['JobID','Name'],columns=['Runid'],aggfunc=np.average)
sdf = df.pivot_table(values=['Flag_Statge'],index =['JobID','Name'],columns=['Runid'],aggfunc={'Flag_Statge': lambda x: ','.join(x.unique())})
def bgcolorformat(row):
ret = ["" for _ in row.index]
ret[row.index.get_loc('Flag_Statge')]= sdf['Flag_Statge'].apply(lambda x: fstatus(x))
df.style.apply(bgcolorformat, axis=1)
на основе sdf, в результате мы можем применить цветовой формат.я приложил выходной файл результатов.
Можете ли вы объяснить лямбда-функции и список циклов.
Исходные данные и ожидаемый результат установлены: