astype() di Pandas

Mengubah tipe data kolom, misalnya teks ke angka, angka ke teks, atau ke kategori.

Diperbarui · Tim Zennit.id

Penjelasan sederhana

Kadang angka terbaca sebagai teks, atau ID terbaca sebagai desimal. astype() memaksa kolom ke tipe yang benar supaya bisa dihitung atau ditampilkan dengan tepat.

Sintaks

df['kolom'].astype(tipe)
BagianKeterangan
tipeint, float, str, 'category', atau 'Int64' (angka bulat yang boleh kosong).

df adalah nama DataFrame (tabel) yang sedang diolah. Contoh di bawah memakai import pandas as pd dan import numpy as np, yang sudah disiapkan otomatis.

Contoh astype()

Data contoh: karyawan (sudah tersedia sebagai DataFrame)

DataFrame karyawan

idnamadept_idkotagajitgl_masukatasan_id
1 Andi Pratama 3 Bandung 12500000 2019-03-11 NaN
2 Bunga Lestari 1 Jakarta 9800000 2020-07-01 NaN
3 Candra Wijaya 3 Bandung 8200000 2021-02-15 1
4 Dewi Anggraini 2 Jakarta 7500000 2022-05-09 6
5 Eko Saputra 1 Jakarta 6900000 2023-01-16 2
6 Fajar Nugroho 2 Surabaya 11000000 2018-09-03 NaN
7 Gita Permata 3 Jakarta 8200000 2023-08-21 1
8 Hendra Gunawan NaN Medan 5500000 2024-04-02 NaN
astype.py
karyawan['dept_id'] = karyawan['dept_id'].astype('Int64')
karyawan['gaji_juta'] = (karyawan['gaji'] / 1000000).astype(str) + ' jt'
print(karyawan[['dept_id', 'gaji_juta']].dtypes)
karyawan[['nama', 'dept_id', 'gaji_juta']]
dept_id       Int64
gaji_juta    object
dtype: object

Hasil 8 baris × 3 kolom

namadept_idgaji_juta
Andi Pratama 3 12.5 jt
Bunga Lestari 1 9.8 jt
Candra Wijaya 3 8.2 jt
Dewi Anggraini 2 7.5 jt
Eko Saputra 1 6.9 jt
Fajar Nugroho 2 11.0 jt
Gita Permata 3 8.2 jt
Hendra Gunawan NaN 5.5 jt

dept_id kembali jadi bilangan bulat tanpa kehilangan sel kosongnya, dan gaji diubah jadi teks bersatuan juta.

Cara kerjanya, langkah demi langkah

  1. astype('Int64') mengubah dept_id ke bilangan bulat yang tetap boleh kosong.
  2. Gaji dibagi sejuta, diubah ke teks, lalu disambung dengan " jt".
  3. dtypes menampilkan jenis isi kedua kolom: Int64 (angka bulat) dan object (teks).

Dipakai untuk apa di kantor?

  • Kolom harga yang terbaca sebagai teks dari file CSV.
  • Menghemat memori dengan tipe category untuk kolom berulang.

Kesalahan yang sering terjadi

  • astype(int) pada kolom yang masih ada NaN akan error. Pakai 'Int64' atau isi dulu dengan fillna.
  • Mengubah teks yang mengandung titik ribuan langsung ke angka.
Progres bab Membersihkan Data 0/5 dipelajari
Lanjut: groupby()

Langkah berikutnya

Dari paham fungsi, ke siap kerja.

Belajar Python bareng mentor

Tahu fungsinya itu awal. Mengolah data kantor sampai jadi insight, itu skill.

Private Class Python & SQL untuk Data: dari Pandas dasar sampai membersihkan, merekap, dan memvisualisasikan data studi kasus kerja, dengan jadwal yang menyesuaikan kamu.

Lihat Private Class