나는 겉보기에 매우 간단한 일로 어려움을 겪고 있습니다. 매우 긴 문자열을 포함하는 팬더 데이터 프레임이 있습니다.
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
- stackoverflow 답변 중 하나는 pandas 표시 옵션을 사용하여 열 너비를 늘리도록 제안했지만 작동하지 않았습니다.
- 나는 또한
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', -1)
자동 줄 바꿈 및 여러 줄 세포.
이것은 팬더와 함께 jupyters 디스플레이를 최대한 활용하는 방법에 대한 훌륭한 리소스입니다.
답변
또 다른 매우 간단한 접근 방식은 목록 함수를 호출하는 것입니다.
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']]
답변
이것이 당신이하려는 의도입니까?
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'
답변
인쇄하기 전에 코드에 다음 줄을 추가하십시오.
pd.options.display.max_colwidth = 90 # set a value as your need
다른 추가 옵션을 설정하려면 다음 단계를 수행하면됩니다.
-
pandas max_columns 기능의 옵션을 다음과 같이 변경하여 더 많은 열을 표시 할 수 있습니다.
import pandas as pd pd.options.display.max_columns = 10
(이렇게하면 10 개의 열을 표시 할 수 있으며 필요에 따라 변경할 수 있습니다.)
-
이와 같이 더 많은 행을 표시하려면 다음과 같이 표시해야 할 행 수를 변경할 수 있습니다.
pd.options.display.max_rows = 999
(이것은 한 번에 999 행을 인쇄 할 수 있습니다)
이것은 잘 작동합니다
팬더에 대한 더 많은 옵션 / 설정을 변경하려면 친절하게 문서 를 참조하십시오.
답변
설명하는 상황을 자주 처리하는 .to_csv()
방법 은 메서드 를 사용하고 stdout에 쓰는 것입니다.
import sys
df.to_csv(sys.stdout)
업데이트 : 이제 비슷한 효과 None
대신 사용이 가능합니다 sys.stdout
!
이것은 모든 문자열을 포함하여 전체 데이터 프레임을 덤프해야합니다. to_csv 매개 변수를 사용하여 열 구분 기호, 인덱스 인쇄 여부 등을 구성 할 수 있습니다. 그래도 제대로 렌더링하는 것보다 덜 예쁘게 보일 것입니다.
나는 원래 pandas의 데이터 프레임에있는 모든 열의 데이터 출력에 다소 관련된 질문에 대한 답변으로 게시했습니다.
