Визуализация pandas таблицы в уценке R - PullRequest
0 голосов
/ 06 марта 2020

Я python noob, но я пытаюсь отобразить таблицу, сгенерированную с кодом python ниже внутри фрагмента R Markdown. Код python выводит хорошую отформатированную таблицу при запуске внутри Jupyter, но я не могу воспроизвести это внутри документа Markdown.

{python, engine.path = '/usr/bin/python3'}
import pandas as pd
import numpy as np

df1 = pd.read_csv(r'./data/crest_results_table.txt', sep='\t')
df2 = pd.read_csv(r'./data/crest_formats_table.txt', sep='\t')

results_table = df1.pivot_table(values=['Result'],index=['Anlys_Mthd','CAS','AnalTParam','RDCSRS','NRDCSRS','IGWSRS'],columns=['SampNum','LabID','SampDate'],aggfunc=np.max)

formats_table = df2.pivot_table(values=['Result'],index=['Anlys_Mthd','CAS','AnalTParam','RDCSRS','NRDCSRS','IGWSRS'],columns=['SampNum','LabID','SampDate'],aggfunc=np.max)

def color_cells(s):
    if s == -1:
        return 'color:{0}; background-color: white; font-weight:bold; font-style:italic; font-size:small'.format('black')
    elif s == -2:
        return 'color:{0}; background-color: orange; font-weight:bold; font-style:italic; font-size:small'.format('black')
    elif s == -3:
        return 'color:{0}; background-color: yellow; font-weight:bold; font-size:small'.format('black')
    elif s == -4:
        return 'color:{0}; background-color: beige; font-weight:bold; font-size:small'.format('black')
    else:
        return 'color:{0}; font-size:small'.format('grey')

t = results_table.style.apply(lambda x: formats_table.applymap(color_cells), axis=None)

ht = t.render()

Я пытался затем использовать render () метод просто сохранить его как html, а затем внутри блока R сохранить или распечатать его

{r}
htmltools::save_html(py$ht, "table.html")
htmltools::html_print(py$ht)

Однако, когда я просматриваю сохраненный файл html, он не отображается правильно даже в браузер.

Документы pandas говорят что-то о "обертывании в I Python .display. HTML", но не зная ни одного python Я не уверен, что это значит.

В идеале я хотел бы, чтобы блок уценки отображал ту же таблицу, отформатированную, как это делает jupyter, с точно таким же кодом.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...