Sebagian besar pekerjaan pandas tidak selesai di skrip, melainkan di notebook: memuat data, mengintip beberapa baris, memfilter, memvisualisasikan, lalu mengulanginya lagi. Jupyter Notebook memang dirancang untuk siklus eksplorasi seperti itu, dan pandas punya integrasi yang dalam kepadanya — DataFrame dirender sebagai tabel HTML yang rapi, gambar Matplotlib tampil di bawah sel, dan ratusan opsi tampilan bisa diatur. Pada Chapter ini kita memahami cara Jupyter menampilkan DataFrame dan menguji opsi tampilan pandas yang paling sering diubah.

Cara Jupyter Menampilkan DataFrame #

Ketika nama DataFrame diketik di baris terakhir sel, Jupyter tidak memanggil print(). Jupyter meminta representasi kaya objek; pandas menyediakannya dalam bentuk HTML berwarna, lengkap dengan format angka, tanda - untuk NaN, dan scroll otomatis untuk tabel besar. Sebaliknya, print(df) memakai representasi teks biasa yang sama dengan output terminal:

Cara menampilkanHasil yang terlihat
df di baris terakhir seltabel HTML rapi, dibatasi display.max_rows dan max_columns
print(df)teks monospace ala terminal, selalu memotong kolom bila sempit
display(df1, df2)beberapa tabel tampil sekaligus tanpa saling menimpa

Fungsi display() berasal dari IPython dan perlu diimpor dengan from IPython.display import display; ia menampilkan representasi kaya seperti pengetikan nama variabel, tetapi bisa dipanggil di tengah sel.

Opsi Tampilan yang Paling Sering Diatur #

Opsi tampilan pandas dikendalikan lewat pd.set_option(), pd.get_option(), dan pd.reset_option(). Skrip berikut menjalankannya di terminal biasa agar kita bisa melihat teks persis yang dihasilkan; perilaku yang sama berlaku untuk sel notebook:

python
import numpy as np
import pandas as pd

print("default width      :", pd.get_option("display.width"))
print("default max_columns:", pd.get_option("display.max_columns"))
print("default max_rows   :", pd.get_option("display.max_rows"))
print()

# 1. Membatasi jumlah kolom yang ditampilkan
lebar = pd.DataFrame(
    np.arange(24).reshape(4, 6),
    columns=["kolom_0", "kolom_1", "kolom_2", "kolom_3", "kolom_4", "kolom_5"],
)
pd.set_option("display.max_columns", 4)
print(lebar)
pd.reset_option("display.max_columns")
print()

# 2. Membatasi jumlah baris yang ditampilkan
besar = pd.DataFrame({"nilai": np.arange(100)})
pd.set_option("display.max_rows", 8)
print(besar)
pd.reset_option("display.max_rows")
print()

# 3. Mengatur tampilan angka desimal
skor = pd.DataFrame({"rata_rata": [78.4561, 81.2039], "deviasi": [4.21234, 3.98711]})
pd.set_option("display.precision", 2)
print(skor)
pd.set_option("display.float_format", "{:.1f}".format)
print(skor)
pd.reset_option("display.precision")
pd.reset_option("display.float_format")
print()

# 4. Opsi bisa diakses lewat atribut pd.options.display
pd.options.display.width = 120
print("width via atribut :", pd.options.display.width)
pd.options.display.width = 80
print("width dikembalikan:", pd.get_option("display.width"))

Output yang Dihasilkan:

text
default width      : 80
default max_columns: 0
default max_rows   : 60

   kolom_0  kolom_1  ...  kolom_4  kolom_5
0        0        1  ...        4        5
1        6        7  ...       10       11
2       12       13  ...       16       17
3       18       19  ...       22       23

[4 rows x 6 columns]

    nilai
0       0
1       1
2       2
3       3
..    ...
96     96
97     97
98     98
99     99

[100 rows x 1 columns]

   rata_rata  deviasi
0      78.46     4.21
1      81.20     3.99
   rata_rata  deviasi
0       78.5      4.2
1       81.2      4.0

width via atribut : 120
width dikembalikan: 80

Mari kita telaah baris-baris pentingnya:

  1. Baris 4-6 (pd.get_option(...)): nilai bawaan terbaca — lebar 80 karakter, max_columns 0 (artinya otomatis menyesuaikan lebar), dan max_rows 60.
  2. Baris 14 (pd.set_option("display.max_columns", 4)): repr kini menampilkan sebagian kolom saja; kolom tengah diganti tanda ... dan baris terakhir merangkum bentuk tabel: [4 rows x 6 columns].
  3. Baris 16 (pd.reset_option("display.max_columns")): satu opsi kembali ke nilai bawaan; untuk mengembalikan semuanya sekaligus tersedia pd.reset_option("all").
  4. Baris 21 (pd.set_option("display.max_rows", 8)): DataFrame 100 baris dipotong — empat baris pertama, ..., lalu empat baris terakhir. Pemotongan hanya menyentuh tampilan; data asli tetap utuh.
  5. Baris 28 dan 30 (display.precision, display.float_format): precision membulatkan tampilan dua desimal, sedangkan float_format menerima fungsi format penuh (di sini satu desimal); keduanya mengubah tampilan saja, bukan nilai tersimpan.
  6. Baris 37-39 (pd.options.display.width = 120): selain set_option(), opsi bisa ditulis lewat atribut pd.options.display — gaya yang lebih ringan di mata dan sama efektifnya.

Magic %matplotlib inline dan Lingkungan Lain #

Di Jupyter, magic %matplotlib inline menghubungkan Matplotlib ke notebook sehingga setiap plot dari df.plot() otomatis tampil di bawah sel tanpa plt.show(). Di versi Jupyter modern opsi ini sudah aktif secara bawaan, tetapi menuliskannya tetap lazim karena tidak berbahaya dan membuat notebook lama tetap jalan di lingkungan mana pun.

Alur kerja yang sama berlaku di dua lingkungan populer lain. VS Code menjalankan berkas .ipynb lewat ekstensi Python dengan antarmuka yang sama: repr HTML pandas, plot inline, dan tab Variables. Google Colab menawarkan notebook di browser dengan pandas sudah terpasang, sehingga seluruh materi Course ini dapat dicoba tanpa instalasi apa pun. Karena notebook mengalir satu sel demi satu sel, kebiasaan yang disarankan adalah menjaga seluruh notebook tetap bisa dijalankan ulang dari atas ke bawah (restart and run all) — opsi tampilan pun sebaiknya diatur di sel pertama agar hasilnya konsisten.

Tampilan yang nyaman mempercepat eksplorasi, tetapi eksplorasi sering berhenti di satu kebutuhan teknis: mengubah DataFrame menjadi array mentah untuk dikonsumsi library lain. Chapter berikutnya membahas konversi itu beserta aturan copy yang berlaku di pandas 3.0.

Referensi resmi untuk pendalaman: daftar opsi tampilan pandas , panduan dasar-dasar pandas , dan situs resmi Jupyter .