판다 데이터 프레임에서 매우 긴 문자열을 완전히 인쇄합니다.
저는 겉으로 보기에 매우 단순해 보이는 것 때문에 어려움을 겪고 있습니다.저는 매우 긴 문자열이 포함된 판다 데이터 프레임을 가지고 있습니다.
df = pd.DataFrame({'one' : ['one', 'two',
'This is very long string very long string very long string veryvery long string']})
이제 동일하게 인쇄하려고 하면 전체 문자열이 표시되지 않고 문자열의 일부만 표시됩니다.
다음 옵션을 사용해 보았습니다.
- 사용.
print(df.iloc[2])
- 사용.
to_html
- 사용.
to_string
- 스택 오버플로 답변 중 하나는 판다 디스플레이 옵션을 사용하여 열 너비를 늘리자고 제안했지만 역시 효과가 없었습니다.
- 나 또한 방법을 이해하지 못했습니다.
set_printoptions
해결할 수 있을 겁니다
사용할 수 있습니다.options.display.max_colwidth
기본 표현에 더 많은 정보를 표시하도록 지정하려면:
In [2]: df
Out[2]:
one
0 one
1 two
2 This is very long string very long string very...
In [3]: pd.options.display.max_colwidth
Out[3]: 50
In [4]: pd.options.display.max_colwidth = 100
In [5]: df
Out[5]:
one
0 one
1 two
2 This is very long string very long string very long string veryvery long string
실제로 하나의 값을 검사하려면 (스칼라로, 행으로가 아니라) 액세스합니다.df.iloc[2]
또한 전체 문자열도 표시됩니다.
In [7]: df.iloc[2,0] # or df.loc[2,'one']
Out[7]: 'This is very long string very long string very long string veryvery long string'
사용하다pd.set_option('display.max_colwidth', None)
자동 줄 바꿈 및 다중 줄 셀에 사용됩니다.
이것은 판다와 함께 목성 디스플레이를 최대한 활용하는 방법에 대한 훌륭한 자료입니다.
편집됨: 예전에pd.set_option('display.max_colwidth', -1)
.
또 다른 매우 간단한 접근법은 호출 목록 기능입니다.
list(df['one'][2])
# output:
['This is very long string very long string very long string veryvery long string']
언급할 가치가 없습니다. 수녀원이 전체 열을 나열하는 것은 좋지 않지만, 간단한 선을 위해 - 왜 그렇지 않습니다.
전체 문자열을 인쇄하는 또 다른 쉬운 방법은 호출하는 것입니다.values
데이터 프레임에 있습니다.
df = pd.DataFrame({'one' : ['one', 'two',
'This is very long string very long string very long string veryvery long string']})
print(df.values)
출력은 다음과 같습니다.
[['one']
['two']
['This is very long string very long string very long string veryvery long string']]
인쇄하기 전에 코드에 다음 행을 추가하기만 하면 됩니다.
pd.options.display.max_colwidth = 90 # set a value as your need
다음 단계를 수행하여 다른 추가 옵션을 설정할 수 있습니다.
다음과 같이 panda max_columns 기능에 대한 옵션을 변경하여 더 많은 열을 표시할 수 있습니다.
import pandas as pd pd.options.display.max_columns = 10
(10개의 열을 표시할 수 있으며 필요에 따라 이 열을 변경할 수 있습니다.)
마찬가지로 더 많은 행을 표시하려면 다음과 같이 표시해야 하므로 행 수를 변경할 수 있습니다.
pd.options.display.max_rows = 999
(이렇게 하면 한 번에 999개의 행을 인쇄할 수 있습니다.)
이것은 잘 작동할 것입니다.
판다의 추가 옵션/설정을 변경하려면 의사에게 문의하십시오.
나는 작은 유틸리티 기능을 만들었고, 이것은 나에게 잘 작동합니다.
def display_text_max_col_width(df, width):
with pd.option_context('display.max_colwidth', width):
print(df)
display_text_max_col_width(train_df["Description"], 800)
나는 어떠한 옵션도 영구적으로 설정하지 않고 내 요구에 따라 너비의 길이를 변경할 수 있습니다.
주피터 노트북을 사용하는 경우 전체 문자열을 인쇄하는 HTML 테이블로 판다 데이터 프레임을 인쇄할 수도 있습니다.
from IPython.display import display, HTML
display(HTML(df.to_html()))
산출량
one
0 one
1 two
2 This is very long string very long string very long string veryvery long string
이것이 당신이 의도한 것입니까?
In [7]: x = pd.DataFrame({'one' : ['one', 'two', 'This is very long string very long string very long string veryvery long string']})
In [8]: x
Out[8]:
one
0 one
1 two
2 This is very long string very long string very...
In [9]: x['one'][2]
Out[9]: 'This is very long string very long string very long string veryvery long string'
제가 종종 당신이 묘사한 상황에 대처하는 방법은.to_csv()
방법 및 stdout에 쓰기:
import sys
df.to_csv(sys.stdout)
사용할 수 것입니다.None
에 sys.stdout
비슷한 효과로!
이렇게 하면 문자열 전체를 포함하여 전체 데이터 프레임이 덤프됩니다.to_csv 매개 변수를 사용하여 열 구분 기호, 인덱스 인쇄 여부 등을 구성할 수 있습니다.하지만 제대로 렌더링하는 것보다는 덜 예쁠 것입니다.
저는 원래 이것을 팬더의 데이터 프레임에 있는 모든 컬럼의 출력 데이터에 다소 관련된 질문에 대한 답변으로 게시했습니다.
언급URL : https://stackoverflow.com/questions/29902714/print-very-long-string-completely-in-pandas-dataframe
'sourcecode' 카테고리의 다른 글
Excel에서 지정된 이미지 URL에 이미지를 표시하는 방법 (0) | 2023.07.13 |
---|---|
R-package openxlsx의 형식 지정 비율 (0) | 2023.07.13 |
MongoDB_id(ObjectId)가 오름차순으로 생성됩니까? (0) | 2023.07.13 |
웹 배포 작업에 실패했습니다.('Microsoft'의 이니셜라이저입니다.웹, 배포.'배포 관리자'에서 예외를 발생시켰습니다.) (0) | 2023.07.13 |
@Input()에 기반한 Angular 2 동적 종속성 주입 (0) | 2023.07.13 |