Sejauh ini perilaku tampilan pandas mengikuti bawaannya: tampilan tabel terpotong di tengah, float muncul dengan enam desimal, dan baris yang panjang dipangkas. Semua kebiasaan itu bukan hasil final — pandas menyimpannya sebagai opsi bernama yang bisa dibaca dan diatur lewat pd.set_option() dan keluarganya. Opsi display tidak mengubah data sama sekali; opsi hanya mengubah cara pandas merender tabel di layar atau notebook. Chapter ini membahas opsi precision dan float_format, pemulihan lewat reset_option(), serta option_context() untuk opsi yang hanya berlaku sementara.

precision dan float_format #

display.precision mengatur jumlah desimal yang ditampilkan untuk float, tanpa memotong nilai aslinya — 2.345678 tetap tersimpan utuh meski tampil 2.35. Bila butuh format khusus seperti tiga desimal dengan ratusan, display.float_format menerima fungsi pemformat: "{:.3f}".format diterapkan ke setiap float yang dirender. Keduanya tidak saling menimpa secara permanen; float_format yang aktif menang bila keduanya terpasang. Setelah selesai memeriksa angka halus, panggil pd.reset_option() agar notebook berikutnya kembali ke tampilan bawaan — lupa reset adalah sumber kebingungan klasik saat angka tampak membulat sendiri.

python
import pandas as pd

angka = pd.DataFrame({"indeks": [1.234567, 2.345678, 3.456789]})

# display.precision mengatur jumlah desimal di layar
pd.set_option("display.precision", 2)
print(angka)

# display.float_format mengganti pemformatan float secara menyeluruh
pd.set_option("display.float_format", "{:.3f}".format)
print("\ndengan float_format:")
print(angka)

# reset mengembalikan perilaku bawaan
pd.reset_option("display.precision")
pd.reset_option("display.float_format")

# option_context: opsi hanya berlaku di dalam blok with
deret = pd.Series(range(12))
with pd.option_context("display.max_rows", 4):
    print("\ndi dalam context (max_rows=4):")
    print(deret)

print("\nsetelah keluar context:")
print(deret)

Output yang Dihasilkan:

text
   indeks
0    1.23
1    2.35
2    3.46

dengan float_format:
   indeks
0   1.235
1   2.346
2   3.457

di dalam context (max_rows=4):
0      0
1      1
      ..
10    10
11    11
Length: 12, dtype: int64

setelah keluar context:
0      0
1      1
2      2
3      3
4      4
5      5
6      6
7      7
8      8
9      9
10    10
11    11
dtype: int64

Mari kita telaah baris-baris kuncinya:

  1. Baris 7-9: set_option("display.precision", 2) membuat ketiga float tampil dua desimal; nilai kolom tetap float penuh di memori.
  2. Baris 12-14: float_format dengan "{:.3f}".format menampilkan tiga desimal berhierarki pemisahan, menggantikan presisi dua angka.
  3. Baris 17-18: dua reset_option() mengembalikan kedua opsi ke nilai bawaan sebelum blok berikutnya dijalankan.
  4. Baris 21-24: option_context("display.max_rows", 4) memotong tampilan 12 baris menjadi 2 atas dan 2 bawah dengan penanda .., lalu tampilan pulih otomatis setelah blok with berakhir.

option_context untuk Tampilan Sementara #

option_context() adalah bentuk paling aman mengatur opsi: opsi berlaku hanya di dalam blok with, lalu pulih sendiri tanpa garis reset. Pola ini ideal untuk laporan yang sesekali butuh tampilan penuh — display.max_rows dinaikkan sebentar, atau display.width dilebarkan untuk tabel lebar — tanpa meninggalkan efek samping bagi sel notebook lain. Untuk opsi yang memang harus berlaku sepanjang sesi, letakkan set_option() di awal notebook dan catat di sel terpisah agar pembaca tahu tampilannya telah disetel. pd.describe_option() tanpa argumen menampilkan daftar seluruh opsi beserta bawaannya, dan menerima pola nama seperti "display.max" untuk menampilkan sebagian.

Dunia Opsi yang Menyempit #

Opsi terbagi dua kelompok besar: display.* yang mengatur tampilan dan mode.* yang mengatur perilaku. Kelompok mode kini tinggal sedikit — CoW selalu aktif sejak chapter sebelumnya, sehingga mode.copy_on_write usang, dan pilihan infer string sudah menjadi bawaan. Arah pengembangan pandas jelas: opsi mode dipangkas sementara opsi display dipertahankan, karena tampilan memang soal selera. Karena itu praktik yang tahan waktu adalah mengandalkan opsi display untuk kenyamanan kerja, dan menulis kode yang benar tanpa bergantung pada opsi mode apa pun.

Pengaturan opsi menutup bab perilaku internal. Section berikutnya berpindah dari menulis kode ke memastikan kode itu benar: Pengujian dan Debugging dibuka dengan assert_frame_equal, alat pemeriksa kesamaan dua DataFrame paling presisi.

Dokumentasi resmi yang relevan: User Guide: Options and settings sebagai rujukan utama, pandas.set_option untuk aturan penamaan opsi, dan pandas.option_context untuk penggunaan sementara.