Panda veri çerçevesindeki sütun sayısını nasıl alabilirim?


184

Panda veri çerçevesindeki sütun sayısını programlı olarak nasıl alırsınız? Gibi bir şey umuyordum:

df.num_columns

Yanıtlar:


305

Şöyle ki:

import pandas as pd
df = pd.DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]})

len(df.columns)
3

35
artı df.shapeile bir demet verir (n_rows, n_columns)
mkln

3
@mkln df.shape [1] adlı kullanıcıyı yanıt olarak gönderirseniz, +1 olurum. Bu numpy ile çalışmanın daha iyi bir yoludur ve ayrı bir cevap olmayı hak ediyor.
Phil Cooper

yapılır. @PhilCooper belki neden df.shapedaha iyi olduğunu açıklayabilir ? benim tahminim bir işlevi çağırmaz ama sadece bellekten özniteliği okur?
mkln

113

Alternatif:

df.shape[1]

( df.shape[0]satır sayısıdır)


2
+1 çünkü martix türü sözdizimi ile numpy ve panda nesnelerinin adreslenmesini teşvik etmek istiyorum. (df.shape vs len (df.columns)). Gerçeği söylemek gerekirse, şekil için pandaların tanımlayıcısına bakarsanız, len (df.columns) der, ancak numpy dizileri ve matriksleri bir özellik olarak görür. en verimli vektörize işlemler, vektörize işlemlerin aksine düzenli python sözdizimleri ile yapılabilir ve neredeyse her zaman yanlıştır (bu eleştiriden hariç numba / jit işlemleri)
Phil Cooper

26

Veri çerçevesini tutan değişkene df denirse, o zaman:

len(df.columns)

sütun sayısını verir.

Ve satır sayısını isteyenler için:

len(df.index)

Hem satır hem de sütun sayısını içeren bir grup için:

df.shape

3
Olmaz len(df)size satırları vermek?
Padraic Cunningham

4
@PadraicCunningham pandalarının unutulması kolay birçok kısayolu var, bu yüzden onları görmezden gelmeyi ve şeyleri çözmek için ana mantığı kullanmayı tercih ediyorum. İşlem hızını bazen feda edebilirsiniz, ancak kodlama süreme ve kod okunabilirliğine işlem süresinden birkaç saniyeden fazla değer veriyorum. Bu özel durumda: satır sayısının len (df.index) ile hesaplanabileceğini öğrenirseniz, bir sonraki sütun sayısına ihtiyacınız olduğunda len (df.columns) yapmak doğal hale gelir.
multigoodverse


0

df.info () işlevi size aşağıdaki gibi bir sonuç verir. Sep parametresiz panda read_csv yöntemini veya "," ile sep parametresini kullanıyorsanız.

raw_data = pd.read_csv("a1:\aa2/aaa3/data.csv")
raw_data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5144 entries, 0 to 5143
Columns: 145 entries, R_fighter to R_age

0

Aşağıdakiler gibi sütun numarasını ve sütun bilgi almak için birden fazla seçenek vardır
diyelim onları kontrol edin.

local_df = pd.DataFrame (np.random.randint (1,12, boyut = (2,6)), sütunlar = ['a', 'b', 'c', 'd', 'e', ​​'f ']) 1. local_df.shape [1] -> Şekil niteliği dönüş demetini (satır ve sütunlar) (0,1) olarak.

  1. local_df.info () -> info Yöntem, veri çerçevesi hakkında ayrıntılı bilgi döndürür ve sütun sayısı, sütunların veri türü, boş değer sayısı değil, Veri Çerçevesi tarafından bellek kullanımı

  2. len (local_df.columns) -> sütunlar özniteliği veri çerçevesi sütunlarının dizin nesnesini döndürür & len işlevi toplam kullanılabilir sütunları döndürür.

  3. local_df.head (0) -> parametre 0 ile head yöntemi, başlıktan başka bir şey olmayan df'nin 1. satırını döndürür.

Sütun sayısının 10'dan fazla olmadığı varsayılarak döngü eğlencesi için: li_count = local_df içindeki x için 0: li_count = li_count + 1 baskı (li_count)

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.