Bagaimana cara saya mengambil jumlah kolom dalam bingkai data Pandas?


184

Bagaimana Anda secara terprogram mengambil jumlah kolom dalam bingkai data panda? Saya berharap untuk sesuatu seperti:

df.num_columns

Jawaban:


305

Seperti itu:

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

len(df.columns)
3

35
plus df.shapememberi tuple dengan (n_rows, n_columns)
mkln

3
@ mkln jika Anda memposting df.shape [1] sebagai jawaban, saya beri +1. Ini adalah cara yang lebih baik untuk bekerja dengan numpy dan pantas menjadi jawaban terpisah.
Phil Cooper

selesai @ PhilCooper mungkin Anda bisa menjelaskan mengapa df.shapelebih baik? Dugaan saya adalah bahwa itu tidak memanggil fungsi tetapi hanya membaca atribut dari memori?
mkln

113

Alternatif:

df.shape[1]

( df.shape[0]adalah jumlah baris)


2
1 karena saya ingin mendorong pengalamatan objek numpy dan panda dengan sintaks tipe martix. (df.shape vs len (df.columns)). Sejujurnya, jika Anda melihat deskriptor panda untuk bentuk, ia memanggil len (df.columns) tetapi array numpy dan matricies memilikinya sebagai atribut. operasi vektor yang paling efisien dapat dilakukan dengan sintaks python biasa yang bertentangan dengan operasi vektor dan hampir selalu salah (operasi numba / jit dikecualikan dari kritik itu)
Phil Cooper

26

Jika variabel yang memegang kerangka data disebut df, maka:

len(df.columns)

memberikan jumlah kolom.

Dan bagi mereka yang menginginkan jumlah baris:

len(df.index)

Untuk tuple yang berisi jumlah baris dan kolom:

df.shape

3
Tidak akan len(df)memberi Anda baris?
Padraic Cunningham

4
@PadraicCunningham panda memiliki banyak pintasan yang mudah dilupakan jadi saya lebih suka mengabaikannya dan menggunakan logika utama sebagai gantinya untuk menyelesaikan masalah. Anda mungkin mengorbankan kecepatan pemrosesan kadang-kadang, tetapi saya menghargai waktu pengkodean dan pembacaan kode saya lebih dari beberapa detik waktu pemrosesan. Dalam kasus khusus ini: jika Anda mengetahui bahwa jumlah baris dapat dihitung dengan len (df.index), lain kali Anda membutuhkan jumlah kolom itu wajar untuk melakukan len (df.columns).
multigoodverse


0

Fungsi df.info () akan memberi Anda hasil seperti di bawah ini. Jika Anda menggunakan metode read_csv dari Pandas tanpa parameter sep atau sep dengan ",".

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

Ada beberapa opsi untuk mendapatkan nomor kolom dan informasi kolom seperti:
mari kita periksa.

local_df = pd.DataFrame (np.random.randint (1,12, size = (2,6)), kolom = ['a', 'b', 'b', 'c', 'd', 'e', ​​'f ']) 1. local_df.shape [1] -> Bentuk kembali atribut tuple sebagai (baris & kolom) (0,1).

  1. local_df.info () -> info Metode akan mengembalikan informasi terperinci tentang bingkai data dan kolom-kolomnya seperti jumlah kolom, tipe data kolom, Bukan nilai nol, penggunaan memori oleh Data Frame

  2. len (local_df.columns) -> atribut kolom akan mengembalikan objek indeks kolom bingkai data & fungsi len akan mengembalikan total kolom yang tersedia.

  3. local_df.head (0) -> metode kepala dengan parameter 0 akan mengembalikan baris ke-1 df yang sebenarnya hanyalah header.

Dengan asumsi jumlah kolom tidak lebih dari 10. Untuk kesenangan loop: li_count = 0 untuk x dalam local_df: li_count = li_count + 1 print (li_count)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.