Pandas 데이터 프레임에 모든 열 이름을 표시하는 방법은 무엇입니까?


127

수백 개의 열로 구성된 데이터 프레임이 있으며 모든 열 이름을 확인해야합니다.

제가 한:

In[37]:
data_all2.columns

출력은 다음과 같습니다.

Out[37]:
Index(['customer_id', 'incoming', 'outgoing', 'awan', 'bank', 'family', 'food',
       'government', 'internet', 'isipulsa',
       ...
       'overdue_3months_feature78', 'overdue_3months_feature79',
       'overdue_3months_feature80', 'overdue_3months_feature81',
       'overdue_3months_feature82', 'overdue_3months_feature83',
       'overdue_3months_feature84', 'overdue_3months_feature85',
       'overdue_3months_feature86', 'loan_overdue_3months_total_y'],
      dtype='object', length=102)

잘린 목록 대신 모든 열을 표시하려면 어떻게합니까 ?

답변:


194

인쇄 옵션을 전체적으로 설정할 수 있습니다. 나는 이것이 효과가 있다고 생각한다.

방법 1 :

pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

방법 2 :

pd.options.display.max_columns = None
pd.options.display.max_rows = None

이렇게하면 작업 할 때 모든 열 이름과 행을 볼 수 있습니다 .head(). 열 이름이 잘리지 않습니다.


열 이름 만보고 싶다면 다음을 수행 할 수 있습니다.

print(df.columns.tolist())

3
@EEE 아니요, 질문에 대한 답변입니다. 방금 시도했지만 잘린 목록 대신 모든 열을 표시합니다. 그는 잘린 필드를 말하지 않고 열 목록을 말했습니다.
rjurney

3
아, 당신 말이 맞아요. 내가 틀렸어. 감사합니다, @rjurney. 그리고 미안해 욜로. 나는 df.head () 대신 df.columns를하고 있었다! 잘못된 이전 댓글을 삭제해야합니까?
EEE

응, 나도 그렇게 생각해.
rjurney

1
500과 같은 유한 값을 설정하는 것이 훨씬 낫습니다. 그렇지 않으면 큰 데이터 프레임을 인쇄하는 경우 실행하는 데 시간이 오래 걸립니다
Thomas G.

죄송합니다. 끄는 방법은 무엇입니까? 현재 내 멍청한 해결책은 단순히 Anaconda를 닫고 다시 여는 것입니다. 글쎄, 그렇게하지 않고 그것을 꺼내는 것이 합법적인가?
Chen Lizi

44

df_data이 예제에서 DataFrame의 모든 열 이름을 얻으려면 명령을 사용하기 만하면 df_data.columns.values됩니다. 그러면 데이터 프레임의 모든 열 이름이 포함 된 목록이 표시됩니다.

암호:

df_data=pd.read_csv('../input/data.csv')
print(df_data.columns.values)

산출:

['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch' 'Ticket' 'Fare' 'Cabin' 'Embarked']

이것은 당신을 감사합니다,이 질문에 대한 진정한 해답 @ pink.slash
Interlooper

열 번호도보고 싶은 경우 가능합니까? 내 df에는 200 개의 열이 있으며 그중 일부를 사용하고 싶습니다. 각 열 이름을 쓰는 대신 숫자를 사용할 수 있다고 생각했습니다.
Mactilda

10

대화 형 콘솔에서는 다음을 쉽게 수행 할 수 있습니다.

data_all2.columns.tolist()

또는 스크립트 내에서 :

print(data_all2.columns.tolist())

6

이것은 트릭을 할 것입니다. display()인쇄 대신의 사용에 유의하십시오 .

with pd.option_context('display.max_rows', 5, 'display.max_columns', None): 
    display(my_df)

편집하다:

의 사용 display때문에 필요 pd.option_context설정은에 적용 display하지에 print.


with아래 블록에만 옵션을 적용 하는 키워드가 마음에 듭니다. 그러나 print(). display()대신 왜 사용해야 print()합니까?
Vincent Agami

@VincentAgami pd.option_context 설정은 디스플레이에만 적용되고 인쇄에는 적용되지 않기 때문에 디스플레이를 사용해야합니다. 이 정보를 포함하도록 답변을 업데이트했습니다.
nico

3

나를 위해 일한 것은 다음과 같습니다.

pd.options.display.max_seq_items = None

열 수보다 큰 정수로 설정할 수도 있습니다.


3

내가 찾은 가장 쉬운 방법은

list(df.columns)

개인적으로 전역을 변경하고 싶지는 않지만 모든 열 이름을보고 싶은 경우는 그리 많지 않습니다.


2

모든 열 이름을 얻으려면 data_all2.columns.

columns = data_all2.columns
for col in columns:
    print col

모든 열 이름을 얻을 수 있습니다. 또는 모든 열 이름을 다른 목록 변수에 저장 한 다음 목록을 인쇄 할 수 있습니다.


1

모든 열을보고 싶다면 빠른 수정으로 이런 종류의 작업을 수행 할 수 있습니다.

cols = data_all2.columns

이제 cols는 인덱싱 할 수있는 반복 변수로 작동합니다. 예를 들면

cols[11:20]

1

빠르고 더러운 해결책은 그것을 문자열로 변환하는 것입니다.

print('\t'.join(data_all2.columns))

물론 모든 이름이 탭으로 구분되어 인쇄됩니다. 물론 102 개의 이름을 사용하면 모두 다소 길어 읽기가 약간 어려울 수 있습니다.



1

당신은 이것을 시도 할 수 있습니다

pd.pandas.set_option('display.max_columns', None)

1

일반적인 대답은 아니지만 데이터 프레임을 전치하여 열 대신 행을 볼 수 있다고 생각합니다. 나는 열을 보는 것보다 행을 더 '직관적'으로 보는 것을 발견하기 때문에 이것을 사용합니다.

data_all2.T

이렇게하면 모든 행을 볼 수 있습니다. 이 작업은 영구적이지 않으며 데이터 프레임의 전치 버전을 볼 수 있습니다.

행이 여전히 잘 리면을 사용 print(data_all2.T)하여 모든 것을보십시오.


일반적인 대답은 아니지만 데이터 프레임을 전치하여 열 대신 행을 볼 수 있다고 생각합니다. 그들이 원하는 것은 열 이름뿐입니다. 행이 여전히 잘 리면 모든 것을 보려면 print (data_all2.T)를 사용하십시오. 결과를 인쇄하면 문제가 어떻게 해결됩니까? 어쨌든 이미 인쇄하고 있지 않습니까?
AMC

0

이게 내 방법이야. 나는 100 개의 칼럼을 시도하지 않는다. 하지만 작동한다고 생각합니다

your_dataframe.info()

0

나는 그것이 반복이라는 것을 알고 있지만 항상 YOLO의 대답을 복사하고 수정하는 것으로 끝납니다.

pd.set_option('display.max_columns', 500)
pd.set_option('display.max_rows', 500)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.