Pandas astype: Ubah Tipe Data Kolom (2026)
Blog/Tips & Trik/Pandas astype: Ubah Tipe Data Kolom (2026)

Pandas astype: Ubah Tipe Data Kolom (2026)

BimaBima
·21 Agustus 2026·9 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

TL;DR

Pandas astype ngubah tipe data kolom DataFrame, misalnya df['harga'].astype(int) buat ubah teks jadi angka. Method ini kepakai buat benerin kolom yang kebaca salah tipe pas import file, plus ngirit memori lewat konversi ke category. Kalau datanya kotor dan bisa gagal konversi, pakai pd.to_numeric yang lebih aman karena punya opsi errors.

Pandas astype ngubah tipe data kolom DataFrame, misalnya dari teks jadi angka biar bisa dihitung. Satu method buat benerin kolom yang kebaca salah tipe pas import file.

Pernah nemu kolom harga yang harusnya angka tapi malah dianggap teks, jadi nggak bisa dijumlah? Itu masalah tipe data. astype yang beresin.

Di sini kamu bakal lihat sintaksnya, cara konversi string ke angka, cara ngirit memori pakai category, plus kapan mesti pakai to_numeric ketimbang astype.

Apa itu pandas astype dan kapan dipakai?

astype adalah method pandas buat ngubah tipe data satu kolom atau seluruh DataFrame ke tipe yang kamu tentuin. Kamu sebut tipe targetnya, pandas konversi isinya.

Kepakai paling sering pas kamu baru baca file CSV dan pandas nebak tipe kolomnya salah. Angka kebaca sebagai teks, tanggal kebaca sebagai object, kolom kategori makan memori banyak.

Kenapa penting: kolom bertipe teks nggak bisa dihitung. Kalau kolom harga tipenya object, df['harga'].sum() bakal nyambungin teks, bukan menjumlah angka. Tipe data yang bener itu syarat sebelum analisis.

Gimana sintaks astype?

Bentuk paling dasar: panggil astype di satu kolom, sebut tipe targetnya, tampung balik.

import pandas as pd

df = pd.DataFrame({
    'harga': ['150000', '89000', '230000']
})
print(df['harga'].dtype)
# object (artinya teks)

df['harga'] = df['harga'].astype(int)
print(df['harga'].dtype)
# int64

Sekarang kolom harga jadi angka beneran dan bisa dijumlah. Cek tipe kolom kapan aja pakai df.dtypes buat mastiin semua udah bener.

Gimana ubah banyak kolom sekaligus?

Isi astype dengan dictionary. Kunci adalah nama kolom, nilai adalah tipe target. Kolom yang nggak disebut dibiarin apa adanya.

df = df.astype({
    'harga': 'int',
    'kota': 'category',
    'tanggal': 'string'
})

Satu langkah buat benerin beberapa kolom sekaligus. Ini rapi banget buat dipasang tepat setelah import file, biar semua tipe langsung bener sebelum lanjut kerja.

Gimana cara ngirit memori pakai astype?

Kolom teks yang nilainya berulang, kayak kota atau tier pelanggan, boros memori kalau disimpan sebagai object. Ubah jadi category. pandas cuma nyimpen daftar unik sekali, lalu sisanya nunjuk ke situ.

df['kota'] = df['kota'].astype('category')

Buat kolom angka, kamu juga bisa kecilin dari int64 ke int32 atau int16 kalau rentang nilainya nggak besar. int64 makan 8 byte per nilai, int16 cuma 2 byte.

df['jumlah'] = df['jumlah'].astype('int16')

Di dataset besar, konversi kayak gini beda banget efeknya. Lebih lengkap soal ini ada di panduan cara menghemat memori DataFrame pandas.

Contoh kasus: benerin data penjualan toko_berkah

Toko_berkah import data penjualan dari CSV. Kolom total kebaca sebagai teks karena ada pemisah ribuan, kolom kota boros memori, dan kolom tanggal masih object.

df.dtypes
# total     object
# kota      object
# tanggal   object

# Buang pemisah ribuan dulu, baru konversi
df['total'] = df['total'].str.replace('.', '', regex=False).astype(int)

# Kota jadi category buat ngirit memori
df['kota'] = df['kota'].astype('category')

df.dtypes
# total     int64
# kota      category
# tanggal   object

Waktu aku benerin file penjualan 50.000 baris, ngubah kolom kota dari object ke category doang mangkas pemakaian memori kolom itu sekitar 90%, dari sekitar 3 MB jadi 0,3 MB. Soalnya cuma ada 12 nama kota unik yang diulang puluhan ribu kali. Buat kolom tanggal, jangan pakai astype, pakai to_datetime yang lebih pintar baca format tanggal. Buat dasar struktur data, cek konsep DataFrame.

astype vs to_numeric, pilih yang mana?

Ini beda yang paling sering bikin analis pemula kejebak. Tabel ini bantu milih.

SituasiPakai
Data udah bersih, semua nilai validastype
Data kotor, ada nilai yang mungkin gagal konversito_numeric
Mau nilai gagal jadi NaN, bukan errorto_numeric(errors='coerce')
Ubah ke category atau stringastype

Contoh to_numeric buat data kotor yang ada nilai aneh:

df['harga'] = pd.to_numeric(df['harga'], errors='coerce')

Nilai yang nggak bisa dikonversi jadi NaN, bukan bikin seluruh proses crash. Habis itu tinggal kamu isi atau buang NaN-nya.

Kesalahan umum saat pakai astype

Dua hal ini paling sering bikin astype error atau salah hasil.

  • astype int gagal gara-gara NaN. Tipe int biasa nggak bisa nyimpen nilai kosong. Isi dulu pakai fillna, atau pakai tipe Int64 dengan I besar yang bisa nampung NaN.
  • Lupa buang pemisah ribuan. Nilai kayak '150.000' dianggap teks karena ada titik. Buang dulu titiknya pakai str.replace sebelum astype.

Satu tips: selalu cek df.dtypes sebelum dan sesudah konversi. Kalau tipenya nggak berubah, berarti ada yang gagal diam-diam atau hasilnya nggak ketampung.

Penutup

astype ngubah kolom yang salah tipe jadi tipe yang bener biar siap dihitung. Yang perlu kamu bawa:

  • Pakai dictionary buat konversi banyak kolom sekaligus.
  • Ubah kolom teks berulang jadi category buat ngirit memori.
  • Pakai to_numeric ketimbang astype kalau datanya kotor.

Mau pandas jadi alat harianmu buat bersihin dan siapin data? Kulik latihan kasus nyata di NgulikData biar langkah kayak gini otomatis. Lanjut baca to_datetime buat konversi kolom tanggal. Referensi resmi argumen lengkapnya ada di dokumentasi resmi pandas astype.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel terkait

NumPy reshape: Ubah Bentuk Array (2026)
Tips & Trik
8 Oktober 2026•9 menit baca

NumPy reshape: Ubah Bentuk Array (2026)

Fungsi reshape di NumPy ngatur ulang bentuk array tanpa ngubah datanya. Ini cara pakainya, arti angka -1, dan cara ngeflat array.

BimaBima
NumPy Array: Dasar-Dasar untuk Analis Data (2026)
Tips & Trik
6 Oktober 2026•10 menit baca

NumPy Array: Dasar-Dasar untuk Analis Data (2026)

NumPy array bikin hitungan data di Python jauh lebih cepat dari list biasa. Ini dasar bikin, slicing, dan operasi array buat analis.

BimaBima
Alternatif iterrows yang Lebih Cepat di Pandas
Tips & Trik
3 Oktober 2026•8 menit baca

Alternatif iterrows yang Lebih Cepat di Pandas

iterrows nyaman ditulis tapi lambat. Ini urutan alternatif iterrows di pandas dari yang tercepat, plus benchmark biar kamu tau kapan pakai yang mana.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

© 2026 Ngulik Data. Semua hak dilindungi.

TAUTAN
BantuanHargaDatasetBlogAfiliasi
LEGAL
Syarat & KetentuanKebijakan Privasi
Ngulik Data
DatasetLeaderboardBlogStore