ipynthon의 nbconvert 을 사용하여 멀티 인덱스 팬더 데이터 프레임을 라텍스로 내보내려고 시도하고 있지만 멀티 인덱스 행이 모두 잘못되었습니다. 내가 제대로 라텍스로 변환하는 코드의 시작 부분에 다음 코드를 사용하고 (I 등등 곳을 찾았지만 위치를 기억 할 수 없음) :nbconvert multiindex 데이터 프레임을 라텍스로
from sympy import latex
from IPython.display import HTML, Latex, display, Math
pd.set_option('display.notebook_repr_html', True)
def _repr_latex_(self):
return "\\begin{center} %s \end{center}" % self.to_latex()
pd.DataFrame._repr_latex_ = _repr_latex_ # monkey patch pandas DataFrame
GROUPBY 코드가 꽤 큰하지만 난이 같은 작은 코드로 또한 테스트 : 이것의 결과는 본 실시 예는 단지 문제의 제 도시
\begin{center} \begin{tabular}{lrr}
\toprule
{} & B & C \\
A D & & \\
\midrule
1 2 & 5 & 36 \\
5 & 3 & 4 \\
2 6 & 2 & 1 \\
99 & 5 & 1 \\
3 5 & 6 & 23 \\
\bottomrule
\end{tabular}
\end{center}
a = np.array([[1, 3, 4, 5],
[1, 5, 36, 2],
[3, 6, 23, 5],
[2, 2, 1, 6],
[2, 5, 1, 99]])
df = pd.DataFrame(a, columns=['A','B','C','D'])
df.groupby(by=['A','D']).sum()
이다
이 출력을 보여줄 것이다 multiindex 다른 하나의 위에 쌓인,하지만 출력하기 전에 서식을 지정하는 방법을 찾을 수 없습니다. (나는이 종류의 많은 큰 테이블을 생산하고 있으므로 라텍스 자체를 형성하는 것은 고통이다). 또한 몇 가지 멀티 인덱스를 사용하면 완전히 읽을 수 없게됩니다. 두 번째 큰 문제는 Ipython이 display()를 사용하여이 테이블을 렌더링하고 실제로 열 너비를 화면에 맞게 조정하지만 라텍스에서는 페이지 너비를 초과하고 대부분의 테이블이 손실된다는 것입니다.나는 nbconvert에 대한 더 나은 포매팅 솔루션을 찾고 있지만 모든 것을 찾을 수 없습니다. 제발 당신도이 문제가 있었거나이 두 가지 문제에 대한 해결책을 알고 있다면 제게 말해주십시오.
pd : Python 2.7.7 Anaconda 2.0.1 (64 비트) 및 최신 버전의 pandas (0.14.1) 및 ipython (2.2.0)을 사용하고 있습니다.
(현재 고정 된) 열 단위 동작에 대한 병합 된 PR이 있으며 인덱스 부분도 0.15로 고정 될 것입니다. https://github.com/pydata/pandas/pull/7982 –
df.reset_index(). to_latex (index = False)도 합리적인 해결책이 될 수 있습니까? –
@PaulH 확실히 쉬운 것! :) MI가 repr에 어떤 가치가 있는지 여부가 문제라고 생각합니다. –