Я 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, с точно таким же кодом.
Спасибо