Изменение строкового представления бесконечности в Pandas - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть 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 для изменить это, но не смог ничего найти. Есть идеи?

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