Ketika kita mencetak sebuah Series, pandas menyatukan label dan nilai dalam satu tampilan sehingga mudah dibaca. Namun untuk manipulasi lebih lanjut, kita sering perlu mengambil kedua komponen itu secara terpisah: label untuk dijadikan kunci pencarian, dan nilai untuk dihitung atau dikonversi. Chapter ini mengajarkan atribut index dan values, dua pintu utama menuju isi Series, beserta cara mengonversinya ke bentuk Python biasa.

Dua Komponen dalam Satu Objek #

Atribut .index mengembalikan objek Index, yaitu kumpulan label yang menyalin aturan “alamat” Series. Atribut .values mengembalikan struktur array yang menampung datanya. Keduanya bisa dibaca kapan saja tanpa mengubah Series asalnya. Perbedaan perannya dapat dirangkum seperti berikut:

AtributMengembalikanDipakai untuk
.indexObjek Index berisi labelMencari, menjajarkan, dan mengganti alamat data
.valuesArray nilai (NumPy ndarray untuk data numerik)Mengakses atau menghitung isi data
.index.tolist()list Python berisi labelMenyalin label ke struktur Python biasa
.to_list()list Python berisi nilaiMenyalin nilai ke struktur Python biasa
.to_dict()dict berisi pasangan label-nilaiMenyalin seluruh Series ke dictionary

Perlu dicatat bahwa isi .values mengikuti dtype Series. Untuk Series numerik, pandas mengembalikan numpy.ndarray; untuk Series bertipe str baru di pandas 3.0, struktur yang kembali adalah ArrowStringArray. Keduanya sama-sama dapat diiterasi dan diindeks seperti array pada umumnya.

Menampilkan index dan values #

Skrip berikut membuat Series suhu harian dengan label nama kota, lalu menampilkan kedua komponennya satu per satu beserta hasil konversinya ke list dan dictionary.

python
import pandas as pd

suhu = pd.Series([31, 33, 32], index=["Jakarta", "Bandung", "Surabaya"])

print(suhu.index)
print()

print(suhu.values)
print()

print(type(suhu.values).__name__)
print()

print(suhu.index.tolist())
print(suhu.to_list())
print(suhu.to_dict())

Output yang Dihasilkan:

text
Index(['Jakarta', 'Bandung', 'Surabaya'], dtype='str')

[31 33 32]

ndarray

['Jakarta', 'Bandung', 'Surabaya']
[31, 33, 32]
{'Jakarta': 31, 'Bandung': 33, 'Surabaya': 32}

Mari kita telaah kode di atas:

  1. Baris 3-4: konstruktor pd.Series() menerima list suhu dan daftar label kota; urutan label mengikuti urutan data yang diberikan.
  2. suhu.index: menampilkan objek Index(['Jakarta', 'Bandung', 'Surabaya'], dtype='str'); perhatikan bahwa objek Index di pandas 3.0 juga membawa dtype str untuk label teks.
  3. suhu.values: menampilkan [31 33 32], sebuah array NumPy tanpa label, lalu type(...).__name__ mengonfirmasi tipenya ndarray.
  4. Tiga baris terakhir: suhu.index.tolist() menyalin label ke list Python, suhu.to_list() menyalin nilai ke list Python, dan suhu.to_dict() menghasilkan dictionary berisi pasangan label-nilai.

Mengapa Pemisahan Ini Penting #

Banyak operasi pandas bekerja pada dua komponen tersebut secara berbeda. Ketika kita menghitung rata-rata, yang dihitung adalah values; ketika kita mencari baris tertentu, yang dicocokkan adalah index. Karena itu, kebiasaan memeriksa keduanya sejak dini membantu kita memahami hasil setiap operasi. Objek pandas.Index sendiri memiliki kemampuan tambahan, seperti pencarian keanggotaan dan operasi himpunan, yang akan terasa berguna saat kita menggabungkan beberapa tabel.

Konversi ke list dan dictionary juga menjadi jembatan menuju dunia Python murni: hasil akhir analisis sering kali perlu dikirim ke format lain, seperti JSON atau database, yang lebih menyukai struktur bawaan Python. Dengan memahami index dan values, kita sudah memegang dua komponen paling mendasar dari Series. Chapter berikutnya, “Label Index Kustom”, melangkah lebih jauh: kita akan memberi label buatan sendiri saat Series dibuat dan melihat bagaimana label membuat kode pencarian data jauh lebih mudah dibaca. Rujukan resmi untuk materi ini ada pada halaman pandas.Series dan User Guide bagian basics .