PYTHON Pandas - Использование стиля Pandas для фрейма данных на основе значений в другом фрейме - PullRequest
0 голосов
/ 20 февраля 2019

Я уже давно справляюсь с этой проблемой и не могу найти достойного решения.

У меня есть два кадра данных одинаковой формы.

Dataframe 1


enter image description here

enter image description here

Я хочу покрасить фрейм данных 1 на основе значений, содержащихся в фрейме данных.удается передать «Стиль» в Dataframe 1.

Вот мой код для этого:

df1 = ...
df2 = ...

def apply_color(val):

    colors = {1: 'green',2: 'blue', 3: 'yellow', 4: 'orange', 5: 'grey'}

    return 'background-color: {}'.format(colors[val]) if val else ''

df2.style.applymap(df2)

Кто-нибудь может мне помочь, чтобы завершить это?: -)

Большое спасибо!

С наилучшими пожеланиями, MG

1 Ответ

0 голосов
/ 20 февраля 2019

Используйте applymap с get по dict для DataFrame для цветов и передайте Styler.apply:

df1 = pd.DataFrame({
         'B':[4,5,4],
         'C':[7,8,9],
         'D':[1,3,5],


})

df2 = pd.DataFrame({
         'B':[1,np.nan,4],
         'C':[np.nan,2,np.nan],
         'D':[1,3,np.nan],

})

def apply_color(x):
    colors = {1: 'green',2: 'blue', 3: 'yellow', 4: 'orange', 5: 'grey'}
    return df2.applymap(lambda val: 'background-color: {}'.format(colors.get(val,'')))

df1.style.apply(apply_color, axis=None)

pic

...