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.
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.
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.
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.
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.
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.
Ini beda yang paling sering bikin analis pemula kejebak. Tabel ini bantu milih.
| Situasi | Pakai |
|---|---|
| Data udah bersih, semua nilai valid | astype |
| Data kotor, ada nilai yang mungkin gagal konversi | to_numeric |
| Mau nilai gagal jadi NaN, bukan error | to_numeric(errors='coerce') |
| Ubah ke category atau string | astype |
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.
Dua hal ini paling sering bikin astype error atau salah hasil.
Satu tips: selalu cek df.dtypes sebelum dan sesudah konversi. Kalau tipenya nggak berubah, berarti ada yang gagal diam-diam atau hasilnya nggak ketampung.
astype ngubah kolom yang salah tipe jadi tipe yang bener biar siap dihitung. Yang perlu kamu bawa:
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.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Nama toko ketik campur huruf besar-kecil, spasi nyasar di ujung, atau kode produk nempel jadi satu. Accessor .str di pandas ngerapiin semua itu tanpa loop.
Model machine learning cuma ngerti angka, bukan teks kayak merah atau biru. get_dummies ngubah kolom kategori jadi kolom 0/1 dalam satu baris kode.
Cara pakai pandas crosstab buat bikin tabel silang yang menghitung frekuensi antar dua kategori. Contoh analisis kategori produk per kota UMKM.