Pandas veri çerçevesinde tüm sütunların adı nasıl gösterilir?


131

Yüzlerce sütundan oluşan bir veri çerçevem ​​var ve tüm sütun adlarını görmem gerekiyor.

Ben ne yaptım:

In[37]:
data_all2.columns

Çıktı:

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)

Kesilmiş bir liste yerine tüm sütunları nasıl gösterebilirim ?

Yanıtlar:


202

Global olarak yazdırma seçeneklerini ayarlayabilirsiniz. Bunun işe yarayacağını düşünüyorum:

Yöntem 1:

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

Yöntem 2:

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

Bu, yaptığınız sırada tüm sütun adlarını ve satırları görmenize izin verecektir .head(). Sütun adlarından hiçbiri kısaltılmayacak.


Yalnızca sütun adlarını görmek istiyorsanız, şunları yapabilirsiniz:

print(df.columns.tolist())

3
@EEE Hayır, soruyu yanıtlıyor. Sadece denedim, kesilmiş bir liste yerine tüm sütunları görüntülüyor. Kesilmiş alan demedi, sütun listesi dedi.
rjurney

3
Ahh, haklısın. Ben hatalıydım. Teşekkürler @rjurney. Ve üzgünüm YOLO. Df.head () yerine df.columns yapıyordum! Yanlış önceki yorumumu silmeli miyim?
EEE

Evet bence de.
rjurney

1
500 gibi sonlu bir değer ayarlamak çok daha iyidir, aksi takdirde büyük bir veri çerçevesi yazdırırsanız çalıştırmak sonsuza kadar sürer
Thomas G.

Pardon ama nasıl kapatılır? Şu anda benim aptal çözümüm, Anaconda'yı kapatıp yeniden açmak. Peki, bunu yapmadan çıkarmanın yasal bir yolu var mı?
Chen Lizi

45

Bir DataFrame'in tüm sütun adlarını elde etmek için, df_databu örnekte, sadece komutu kullanmanız gerekir df_data.columns.values. Bu size Dataframe'inizin tüm Sütun adlarını içeren bir liste gösterecektir.

Kod:

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

Çıktı:

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

Bu sorunun gerçek cevabı bu, teşekkürler @ pink.slash
Interlooper

Sütun numaralarını da görmek istersem - bu mümkün mü? Df'mde 200 sütun var ve bunların bir kısmını kullanmak istiyorum ve her sütun adını yazmak yerine sayıları kullanabileceğimi düşünüyordum.
Mactilda

11

Etkileşimli konsolda şu işlemleri yapmak kolaydır:

data_all2.columns.tolist()

Veya bu bir komut dosyası içinde:

print(data_all2.columns.tolist())

6

Bu hile yapacak. display()Baskı yerine ' nin kullanımına dikkat edin .

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

DÜZENLE:

Ayarlarının kullanımı displaygereklidir, çünkü pd.option_contextayarlar için geçerlidir displayve geçerli değildir print.


withAnahtar kelimenin, seçeneği yalnızca aşağıdaki bloğa uygulamasını seviyorum . Ancak onunla iyi çalışıyor print(). display()Bunun yerine neden kullanmalıyım print()?
Vincent Agami

@VincentAgami Ekran kullanımı gereklidir çünkü pd.option_context ayarları yazdırmak için değil, yalnızca görüntülemek için geçerlidir. Cevabı bu bilgiyi içerecek şekilde güncelledim.
nico

5

Benim için işe yarayan şuydu:

pd.options.display.max_seq_items = None

Ayrıca, sütun sayınızdan daha büyük bir tamsayı olarak da ayarlayabilirsiniz.


3

Bulduğum en kolay yol sadece

list(df.columns)

Şahsen ben küreselleri değiştirmek istemem, çoğu zaman tüm sütun adlarını görmek istemiyorum.


2

Tüm sütun adlarını almak için data_all2.columns.

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

Tüm sütun adlarını alacaksınız. Veya tüm sütun adlarını başka bir liste değişkenine kaydedebilir ve ardından listeyi yazdırabilirsiniz.


1

Sadece tüm sütunları görmek istiyorsanız, bu türden bir şeyi hızlı bir çözüm olarak yapabilirsiniz.

cols = data_all2.columns

şimdi cols, indekslenebilen yinelemeli bir değişken olarak davranacaktır. Örneğin

cols[11:20]

1

Hızlı ve kirli bir çözüm, onu bir dizeye dönüştürmek olacaktır.

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

hepsinin sekmelerle ayrılmış olarak yazdırılmasına neden olur Tabii ki, 102 adla, hepsi oldukça uzun, bunu okumanın biraz zor olacağını unutmayın



1

bunu deneyebilirsin

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

1

Geleneksel bir cevap değil, ama sanırım veri çerçevesini sütunlar yerine satırlara bakmak için dönüştürebilirsiniz. Bunu kullanıyorum çünkü satırlara bakmayı sütunlara bakmaktan daha 'sezgisel' buluyorum:

data_all2.T

Bu, tüm satırları görüntülemenize izin vermelidir. Bu eylem kalıcı değildir , yalnızca veri çerçevesinin dönüştürülmüş sürümünü görüntülemenize izin verir.

Satırlar hala kesilmişse, print(data_all2.T)her şeyi görüntülemek için kullanın .


Geleneksel bir cevap değil, ama sanırım veri çerçevesini sütunlar yerine satırlara bakmak için dönüştürebilirsiniz. Tek istedikleri sütun adları, değil mi? Satırlar hala kesilmişse, her şeyi görüntülemek için yazdır (data_all2.T) kullanın. Sonucu yazdırmak sorunu nasıl çözer? Zaten yazdırmıyor musunuz?
AMC

-1

Bunun bir tekrar olduğunu biliyorum ama her zaman kopyalayıp yapıştırıp YOLO'nun cevabını değiştiriyorum:

pd.set_option('display.max_columns', 500)
pd.set_option('display.max_rows', 500)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.