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.