Mam ramkę danych w pandach z wieloma kolumnami. Mam zadanie kodowania kolorem określonej komórki w kolumnie A, jeśli warunek jest zgodny z kolumną C. tu wpisz opis obrazu
Załączam przykład. Chcę zastosować trzy różne warunki do kolumny C
1. If Column C = poor than Column A = red color
2. If Column C = good then Column A = Orange color
3. If Column C = very good then Column A = Green color
Z góry dziękuję!
1 odpowiedź
Użyj Styler.apply
z funkcją niestandardową z numpy.select
, aby wybrać kolory według warunków:
df = pd.DataFrame({
'A':[1,3,5,7],
'B':list('abcd'),
'C':['poor','good','very good','unknown'],
})
print (df)
A B C
0 1 a poor
1 3 b good
2 5 c very good
3 7 d unknown
def color(x):
c1 = 'background-color: red'
c2 = 'background-color: orange'
c3 = 'background-color: green'
c = 'background-color: '
m1 = x['C'] == 'poor'
m2 = x['C'] == 'good'
m3 = x['C'] == 'very good'
df = pd.DataFrame(c, index=x.index, columns=x.columns)
df['A'] = np.select([m1, m2, m3], [c1, c2, c3], default=c)
return df
df.style.apply(color,axis=None)
#if want output in excel file
#df.style.apply(color,axis=None).to_excel('styled.xlsx', engine='openpyxl', index=False)
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.