У меня есть Pandas DataFrame, который я пытаюсь распечатать в LaTeX. Проблема в том, что некоторые значения inf
, которые просто печатаются как inf
в таблице LaTeX, в то время как в идеале я хочу, чтобы они выводились как $\infty$
.
Обходной путь, который у меня есть сейчас нужно распечатать таблицу сначала в строку (вместо печати напрямую в файл) и вручную заменить все inf
s следующим образом:
import numpy as np
import pandas as pd
data = np.random.rand(4,4)
data[1,1]=np.inf
dfout = pd.DataFrame(data)
with open(f"table.tex", "wt") as fou:
text = dfout.to_latex(na_rep="---", escape=False,
float_format="%.2f")
text = text.replace("inf", r"$\infty$")
fou.write(text)
Этот тип работ, за исключением того, что табуляция испорчена вверх. Однако я ожидаю получить новые данные, где это будет работать не так гладко (из-за наличия inf
вхождений в других местах, которые не подлежат замене), поэтому я пытаюсь улучшить это решение.
Мое единственное предположение о том, как сделать это право, состоит в том, чтобы изменить представление Numpy на inf
s, но оно не работает:
np.set_printoptions(infstr=r"$\infty$")
print(data) # Prints $\infty$ corerectly
print(dfout) # Still prints inf
Я попытался найти вариант Pandas для изменить это, но не смог ничего найти. Есть идеи?