Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
  • Elearning
  • Blog
Daftar
Main Logo
  • Home
  • About
  • Kursus
    • Paket Kursus
    • Roadmap Profesi
  • Elearning
  • Blog

Cara Mengubah Tipe Data Kolom di Pandas: Panduan Praktis untuk Pemula

  • July 22, 2026
  • oleh Edusoft Center

Pernah sudah siap menganalisis data, tapi tiba-tiba muncul error seperti ini?

TypeError: unsupported operand type(s) for +: 'int' and 'str'

Atau mungkin kamu mencoba menghitung rata-rata sebuah kolom yang seharusnya berisi angka, tapi hasilnya malah error karena Pandas menganggap kolom tersebut sebagai teks?

Ini adalah masalah yang sangat umum dan hampir pasti akan kamu temui saat bekerja dengan data nyata. Penyebabnya satu: tipe data kolom tidak sesuai dengan yang seharusnya.

Di artikel ini kita akan belajar cara mendeteksi masalah ini dan cara mengatasinya menggunakan Pandas, langkah demi langkah.

Cara Mengubah Tipe Data Kolom di Pandas: Panduan Praktis untuk Pemula

Waktu pertama kali saya serius belajar data analysis, ada satu momen yang cukup bikin frustrasi. Saya sudah berhasil membaca file CSV, datanya kelihatan lengkap, tapi begitu mencoba menghitung rata-rata usia penumpang, Python langsung lempar error.

Ternyata masalahnya bukan di kodenya. Masalahnya di tipe data. Kolom yang saya kira berisi angka, ternyata dibaca Pandas sebagai teks. Dan Pandas tidak bisa menghitung rata-rata dari teks.

Kalau kamu pernah mengalami hal serupa, atau ingin tahu cara mencegahnya sebelum masalah itu muncul, artikel ini akan membahasnya dari awal sampai selesai.


Mengapa Tipe Data Itu Penting?

Bayangkan kamu punya kolom berisi angka seperti 22, 35, 28. Kalau Pandas membacanya sebagai teks (object), maka kamu tidak bisa menghitung rata-rata, menjumlahkan, atau membuat grafik darinya. Pandas tidak tahu bahwa angka-angka itu sebenarnya adalah bilangan karena ia menganggapnya sama seperti tulisan biasa.

Inilah kenapa sebelum mulai analisis, penting untuk memastikan setiap kolom punya tipe data yang tepat. Kolom berisi angka harus bertipe int atau float, kolom berisi tanggal harus bertipe datetime, dan kolom berisi kategori bisa diubah ke tipe category agar lebih efisien.


Tipe Data yang Perlu Kamu Tahu

Sebelum praktik, kenalan dulu dengan tipe data yang paling sering ditemui di Pandas:

int64 → Bilangan bulat, contoh: 1, 25, 100

float64 → Bilangan desimal, contoh: 3.14, 22.5, 0.001

object → Teks atau campuran, ini yang sering jadi masalah karena angka pun bisa terbaca sebagai object

bool → Nilai benar atau salah (True/False)

datetime64 → Tanggal dan waktu

category → Data kategorikal seperti jenis kelamin, kota, status


Langkah 1 — Siapkan Data dan Cek Tipe Data Awal

Buka Jupyter Notebook, lalu buat notebook baru. Kita akan menggunakan dataset Titanic yang sudah familiar.

Ketik kode berikut di sel pertama:

import pandas as pd

df = pd.read_csv('C:/Users/acer/Downloads/titanic/train.csv')
df.dtypes

Perintah df.dtypes menampilkan tipe data setiap kolom. Jalankan dengan Shift + Enter.

Perhatikan hasilnya. Kamu akan melihat beberapa kolom bertipe float64 padahal seharusnya bisa jadi int, dan beberapa kolom bertipe object. Dari sinilah kita mulai bekerja.


Langkah 2 — Mengubah Tipe Data dengan astype()

Cara paling umum untuk mengubah tipe data di Pandas adalah menggunakan metode astype(). Formatnya sederhana:

df['nama_kolom'] = df['nama_kolom'].astype('tipe_baru')

Contoh 1: Mengubah float menjadi int

Kolom PassengerId dan Survived di dataset Titanic bertipe float64, padahal isinya bilangan bulat semua. Mari ubah:

df['PassengerId'] = df['PassengerId'].astype('int64')
df['Survived'] = df['Survived'].astype('int64')

print(df[['PassengerId', 'Survived']].dtypes)

Contoh 2: Mengubah object menjadi category

Kolom Sex berisi nilai male dan female, hanya dua kemungkinan. Tipe data category lebih efisien untuk kolom seperti ini karena menghemat memori.

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

print(df['Sex'].dtype)
print(df['Sex'].unique())

Contoh 3: Mengubah beberapa kolom sekaligus

Kalau mau mengubah banyak kolom dalam satu baris, gunakan dictionary:

df = df.astype({
    'Pclass': 'int64',
    'SibSp': 'int64',
    'Parch': 'int64'
})

print(df[['Pclass', 'SibSp', 'Parch']].dtypes)

Langkah 3 — Mengubah Tipe Data Angka dengan pd.to_numeric()

Selain astype(), ada cara lain yang lebih aman untuk mengubah kolom menjadi angka, yaitu pd.to_numeric(). Kelebihannya, fungsi ini bisa menangani nilai yang tidak bisa diubah tanpa langsung error.

df['Fare'] = pd.to_numeric(df['Fare'])
print(df['Fare'].dtype)

Parameter tambahan yang berguna: errors='coerce' akan mengubah nilai yang tidak bisa dikonversi menjadi NaN daripada memunculkan error.

df['Age'] = pd.to_numeric(df['Age'], errors='coerce')
print(df['Age'].dtype)

Langkah 4 — Mengubah Kolom Tanggal dengan pd.to_datetime()

Untuk kolom yang berisi tanggal, astype() biasanya tidak cukup. Kita butuh pd.to_datetime() agar Pandas benar-benar mengenalinya sebagai tanggal dan bukan sekadar teks.

Karena dataset Titanic tidak punya kolom tanggal, kita buat contoh kecil sendiri:

data_contoh = pd.DataFrame({
    'tanggal': ['2024-01-15', '2024-02-20', '2024-03-10'],
    'nilai': [100, 200, 300]
})

print("Sebelum diubah:")
print(data_contoh.dtypes)

data_contoh['tanggal'] = pd.to_datetime(data_contoh['tanggal'])

print("\nSetelah diubah:")
print(data_contoh.dtypes)

Setelah diubah, kamu bisa melakukan berbagai operasi tanggal seperti mengambil tahun, bulan, atau hari dengan mudah.


Langkah 5 — Verifikasi Semua Perubahan

Setelah semua perubahan dilakukan, cek ulang tipe data keseluruhan DataFrame untuk memastikan semuanya sudah sesuai:

df.dtypes

Bandingkan hasilnya dengan output di Langkah 1 tadi. Semua kolom yang tadi kamu ubah seharusnya sudah menampilkan tipe data yang baru.


Hal yang Perlu Diperhatikan

Ada beberapa kondisi yang bisa menyebabkan error saat mengubah tipe data:

Kolom mengandung nilai kosong (NaN) Mengubah kolom yang punya NaN ke tipe int akan menyebabkan error karena integer tidak mendukung nilai kosong. Solusinya, isi nilai kosong dulu sebelum mengubah tipe:

df['Age'] = df['Age'].fillna(0).astype('int64')

Kolom object berisi campuran angka dan teks Kalau ada satu saja nilai teks di kolom yang seharusnya angka, astype() akan error. Gunakan errors='coerce' di pd.to_numeric() untuk mengatasinya.


Rangkuman

df.dtypes → Melihat tipe data semua kolom

astype(‘tipe’) → Mengubah tipe data satu atau beberapa kolom

pd.to_numeric() → Mengubah kolom menjadi angka dengan penanganan error yang lebih aman

pd.to_datetime() → Mengubah kolom menjadi format tanggal


Kesimpulan

Mengubah tipe data kolom adalah salah satu langkah persiapan data yang paling sering dilakukan sebelum analisis dimulai. Data yang masuk ke dalam Python tidak selalu langsung memiliki tipe yang tepat, dan tugas seorang data analyst adalah memastikan setiap kolom terbaca sesuai dengan apa yang sebenarnya ia representasikan.

Dengan menguasai astype(), pd.to_numeric(), dan pd.to_datetime(), kamu sudah punya bekal yang cukup untuk menangani sebagian besar masalah tipe data yang akan ditemui di lapangan.

Previous Post
Next Post

Post comment

Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • SQL GROUP BY dan Fungsi Agregasi: COUNT, SUM, AVG
  • Cara Mengubah Tipe Data Kolom di Pandas: Panduan Praktis untuk Pemula
  • Mengenal Google Colab: Cara Menjalankan Python Tanpa Instalasi
  • Panduan Menggunakan Virtual Environment (venv) di Python agar Proyek Data Tetap Rapi
  • Cara Hapus Data Duplikat di Pandas

Arsip

  • July 2026
  • June 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • September 2025
  • August 2025
  • July 2025
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012
  • December 2011
  • November 2011

Tags

#EdusoftCenter apache web server dns server kursus android kursus database kursus dns dan web server kursus dns server kursus ethical hacking kursus hacking kursus jaringan kursus jaringan linux Kursus Komputer kursus komputer di solo kursus komputer di solo / surakarta kursus komputer di surakarta kursus linux Kursus Linux Forensics kursus linux networking kursus linux security kursus linux server kursus mikrotik kursus networking kursus network security kursus php Kursus PHP dan MySQL kursus php mysql kursus proxy kursus security kursus ubuntu kursus ubuntu server kursus web kursus web security kursus web server kursus wordpress kursus wordpress theme linux MySQL pelatihan komputer di solo PHP security training komputer training komputer di solo tutorial php ubuntu wordpress

© Edusoft Center - Kursus Komputer di Solo | 2010 - 2025 | Privacy Policy | Site Map

All Right Reserved

WhatsApp us