Pandas to_html ()은 문자열 내용을 자릅니다.


81

DataFrame텍스트 데이터가 포함 된 Python Pandas 개체가 있습니다. 내 문제는 to_html()함수를 사용할 때 출력의 문자열이 잘린다는 것입니다.

예를 들면 :

import pandas
df = pandas.DataFrame({'text': ['Lorem ipsum dolor sit amet, consectetur adipiscing elit.']})
print (df.to_html())

출력은 다음에서 잘립니다. adapis...

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>text</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td> Lorem ipsum dolor sit amet, consectetur adipis...</td>
    </tr>
  </tbody>
</table>

SO에 대한 관련 질문이 있지만 자리 표시 자 및 검색 / 바꾸기 기능을 사용하여 HTML을 후 처리하므로 피하고 싶습니다.

이 문제에 대한 더 간단한 해결책이 있습니까? 문서 에서 관련 내용을 찾을 수 없습니다 .


2
콘텐츠를 어떻게보고 있습니까, iPython을 통해입니까? 이것을 시도한 pd.set_option('display.max_colwidth', -1)다음 html을 인쇄하면 전체 텍스트가 표시된다는 것을 알 수 있습니다. 이것은 실제 데이터를 자르는 것과는 아무 관련이 없습니다. 디스플레이 설정일뿐입니다
EdChum

@EdChum 예, 실제로 IPython을 통해 HTML을 살펴보고 있었지만 일반 파이썬 터미널에서도 동일한 결과를 얻었습니다. 그러나 예, set_option이이를 수정합니다! 터미널과 IPython 모두에서. 그 가능성에 대해 전에는 몰랐습니다.
Timo 2014 년

pandas는 데이터를 자르는 것에 대해 들어 본 적이없는 모호한 버그를 제외하고, 더 적은 파이썬 환경을 죽일 수있는 출력량의 표시로부터 사용자를 보호하려고합니다
EdChum

답변:


108

당신이보고있는 것은 표시 목적으로 만 출력을 자르는 팬더입니다.

기본값 max_colwidth은 현재 표시되는 50입니다.

이 값을 원하는대로 설정하거나 -1로 설정하여 효과적으로 해제 할 수 있습니다.

pd.set_option('display.max_colwidth', -1)

이에 대해 조언하지만 콘솔이나 ipython에서 쉽게 표시 할 수있는 것으로 설정하는 것이 좋습니다.

옵션 목록은 http://pandas.pydata.org/pandas-docs/stable/options.html 에서 찾을 수 있습니다.


8
df.to_html ()의` "..."는 True. pandas디스플레이뿐만 아니라 출력 값을 자르는 것처럼 보입니다 .
크리스 Chudzicki

이 질문에서 설명하는 매우 흥미로운 사례가 있습니다. stackoverflow.com/questions/51260756/… html 테이블의 셀 값이 사전을 보유하는 곳입니다. 이만큼 크지 않은 사전은 다른 테이블에 잘 표시되어 있지만이 특별한 매우 긴 사전은 점으로 축약되어 표시되지 않습니다. 나는 pd.set_option ( 'display.max_rows', 1000)을 실험했지만 운이 없었습니다. 이것에 대한 제안이나 내 질문에 대한 답변이 있습니까?
user637338 jul.

이것이 v 0.24에서 이것을 수행하는 방법입니까?
Jason Strimpel 2019

@JasonStrimpel 그래 난 그렇게 생각
EdChum

1
당신은, 디스플레이 옵션은 모든 열 또는 행에 영향을 줄 수 @Superdooperhero
EdChum

19

그것이 pd.set_option('display.max_colwidth', -1)실제로 유일한 옵션 인 것 같습니다 . 데이터 프레임이 콘솔에 표시되는 방식의 되돌릴 수없는 전역 변경을 방지하려면 다음과 같이 이전 설정을 변수에 저장하고 사용 직후에 복원 할 수 있습니다.

    old_width = pd.get_option('display.max_colwidth')
    pd.set_option('display.max_colwidth', -1)
    open('some_file.html', 'w').write(some_data.to_html())
    pd.set_option('display.max_colwidth', old_width)

45
일시적으로 옵션을 설정하는 방법을 훨씬 더 간단한 해결책이있다 :with pd.option_context('display.max_colwidth', -1): output_html = df.to_html()
hynekcer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.