Dua atribut ini adalah yang paling sering diketik di sepanjang pekerjaan pandas: shape untuk mengetahui ukuran tabel dan dtypes untuk mengetahui tipe tiap kolom. Keduanya adalah atribut, bukan method; artinya diakses tanpa tanda kurung, misalnya df.shape, karena keduanya membaca keadaan DataFrame yang sudah ada, bukan melakukan perhitungan baru. Chapter ini membedah cara membaca keduanya, relasinya dengan len(), serta tabel tipe data yang paling sering kita temui pada data harian.
shape: Ukuran Tabel dalam Satu Tuple #
Atribut df.shape mengembalikan tuple dua elemen dengan urutan tetap: elemen pertama jumlah baris, elemen kedua jumlah kolom. Karena bentuknya tuple, hasilnya bisa langsung dibongkar ke dua variabel, sehingga kode tidak perlu mengakses shape[0] dan shape[1] berulang-ulang. Hubungannya dengan alat inspeksi sebelumnya juga tegas: len(df) selalu sama dengan df.shape[0], df.size sama dengan hasil kali kedua elemen shape, dan df.ndim selalu 2 untuk DataFrame.
import pandas as pd
katalog = pd.DataFrame({
"produk": ["Apel Fuji", "Jeruk Baby", "Mangga Harum Manis"],
"harga": [32000, 18000, 28000],
"stok": [45, 120, 30],
"berat_kg": [0.20, 0.15, 0.55],
})
baris, kolom = katalog.shape
print("shape :", katalog.shape)
print("baris =", baris, "| kolom =", kolom)
print("len() =", len(katalog), "| ndim =", katalog.ndim,
"| size =", katalog.size)
print()
print(katalog.dtypes)
print()
print("dtype kolom produk :", katalog["produk"].dtype)
print("dtype kolom harga :", katalog["harga"].dtype)
print("Kolom produk bertipe str?", katalog["produk"].dtype == "str")Output yang Dihasilkan:
shape : (3, 4)
baris = 3 | kolom = 4
len() = 3 | ndim = 2 | size = 12
produk str
harga int64
stok int64
berat_kg float64
dtype: object
dtype kolom produk : str
dtype kolom harga : int64
Kolom produk bertipe str? TrueMari kita telaah kode di atas:
- Baris 3-8 (katalog dengan empat atribut): tabel katalog kini memuat kolom teks
produk, kolom angka bulathargadanstok, serta kolom desimalberat_kg; variasi tipe ini sengaja dibuat untuk pembacaandtypes. - Baris 10-11 (pembongkaran tuple):
baris, kolom = katalog.shapememisahkan(3, 4)menjadi dua variabel, sehingga output menampilkanbaris = 3 | kolom = 4. - Baris 13-14 (hubungan antar alat):
len()mengembalikan 3 yang sama denganshape[0],ndimtetap 2, dansize12 karena 3 baris × 4 kolom. - Baris 16-20 (pembacaan dtypes):
dtypestampil sebagai Series berisi satu tipe per kolom, dan perbandingankatalog["produk"].dtype == "str"mengembalikanTrue.
dtypes: Tipe Setiap Kolom #
Atribut df.dtypes mengembalikan Series berisi tipe data untuk setiap kolom, dengan nama kolom sebagai index; sifat lengkapnya dirinci di halaman pandas.DataFrame.dtypes
. Pembacaannya lurus: tabel katalog di atas memuat satu kolom str, dua kolom int64, dan satu kolom float64. Untuk memeriksa satu kolom saja, gunakan df["nama_kolom"].dtype yang mengembalikan satu tipe, persis seperti baris 18-19 pada kode di atas.
| Tipe pandas | Kebiasaan dipakai untuk | Contoh nilai |
|---|---|---|
str | teks (nama, kode, kota) | "Apel Fuji" |
int64 | bilangan bulat | 32000 |
float64 | bilangan desimal | 0.20 |
bool | nilai benar/salah | True |
datetime64[us] | tanggal dan waktu | 2026-01-15 |
Tabel di atas adalah peta tipe yang paling sering muncul; tipe lain seperti kategori dan timedelta menyusul pada section-section berikutnya.
Kenapa Tipe Kolom Layak Diwaspadai #
Tipe kolom menentukan operasi mana yang sah untuk kolom tersebut. Rata-rata qty bermakna, sedangkan rata-rata nomor transaksi tidak; penggabungan teks sah untuk kolom str, tetapi tidak untuk kolom int64. Ketika DataFrame dibangun manual seperti pada chapter-chapter lalu, tipe mengikuti data yang kita berikan; ketika nanti data dibaca dari file, tipe ditetapkan oleh proses pembacaan dan bisa saja berbeda dari perkiraan kita. Membiasakan memeriksa dtypes setelah data berpindah tangan adalah kebiasaan yang menghemat waktu.
Ukuran dan tipe sudah kita kuasai dengan pekat; keduanya tergolong fungsi dasar yang dirangkum resmi pada halaman essential basic functionality
. Satu keputusan struktur yang tersisa di Section ini adalah memilih label baris yang tepat: DataFrame yang kita buat selama ini memakai nomor urut bawaan, padahal tabel katalog memiliki kolom kode yang lebih layak menjadi identitas baris. Chapter penutup Section ini membahas persis hal itu lewat set_index().