4 Contoh Pandas Astype untuk Ubah Tipe Data
Yuk, pelajari cara menggunakan Pandas astype lengkap dengan contohnya di sini!
Data Analytics
RevoU Staff
Menggali lebih dalam ke dunia Python, kita akan menemukan berbagai fungsi yang memudahkan pengolahan data, salah satunya yaitu astype dari library Pandas.
Fungsi ini membantu analyst mengkonversi tipe data dalam DataFrame. Mengapa perlu mengubah tipe data?
Terkadang, dalam pengolahan data, tipe data awal tidak sesuai dengan kebutuhan analisis atau operasi selanjutnya yang akan dilakukan. Misalnya, saat melakukan penggabungan data atau ketika melakukan perhitungan statistik tertentu, memastikan tipe data yang tepat sangatlah penting untuk menghindari error atau hasil analisis yang tidak akurat.
Dengan menggunakan astype, kamu lebih mudah mengubah tipe data, sehingga dataset menjadi lebih rapi dan sesuai kebutuhan analisis datamu.
Di artikel ini, kita akan menjelajahi berbagai aspek dari fungsi astype, mulai dari sintaks dasar, berbagai parameter yang bisa digunakan, sampai contoh penerapannya. Mari kita mulai!
Syntax Astype Function di Pandas
Untuk menggunakan fungsi astype, kamu perlu mengetahui syntax dan parameter yang dapat digunakan:
DataFrame.astype(dtype, copy=True, errors='raise')</div><p>Berikut penjelasan masing-masing parameter:</p><p><strong>dtype</strong></p><p>Parameter ini adalah inti dari fungsi <strong>astype</strong>. Di sini, kamu menentukan tipe data baru yang ingin diterapkan ke kolom DataFrame. Tipe data bisa ditentukan sebagai satu tipe untuk semua kolom atau menggunakan <em>dictionary</em> untuk menentukan tipe data spesifik untuk tiap kolom.</p><p>Misalnya, <strong>dtype=float</strong> untuk mengubah tipe data menjadi <em>float</em>, atau <strong>dtype={'kolom1': float, 'kolom2': 'int'}</strong> untuk mengubah tipe beberapa kolom sekaligus dengan tipe berbeda.</p><p>Jenis-jenis <strong>dtype</strong> yang umum digunakan dalam fungsi <strong>astype</strong> meliputi:</p><figure style="max-width:1432pxpx" class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img src="https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/668a3c88e7e474cd917691fe_AD_4nXfl3IoKQh7vptFRlPbiLAYsmi6w3tY1QKQqtO_FXMyE4E4lnxhIVT-wFrWraCGHJaG4fyWwz-hvU2bz_qy4Ewfn_WOP1jwlDZXwwdVUgOHz6oKWrpI7zby-XSNMwgtGKk9dWAbcQnZJf-2V0icFXtsSMFJd.webp" loading="lazy" alt=""/></div></figure><p><strong>copy</strong></p><p>Secara <em>default</em>, nilai dari <strong>copy</strong> adalah <strong>True</strong>, yang berarti fungsi <strong>astype</strong> akan membuat salinan DataFrame baru dan tidak mengubah DataFrame asli.</p><p>Jika kamu menetapkan <strong>copy=False,</strong> perubahan tipe data akan dilakukan langsung pada DataFrame asli.Namun, ini bisa berisiko apabila kamu masih perlu menggunakan DataFrame asli di tempat lain dalam kode kamu.</p><p><strong>errors</strong></p><p>Parameter ini mengontrol apa yang terjadi jika konversi tipe data gagal. Nilai <em>default</em>-nya adalah <strong>'raise'</strong>, yang berarti Python akan mengeluarkan <em>error</em> jika konversi tidak berhasil. Kamu juga bisa mengatur nilai ini menjadi <strong>'ignore'</strong> untuk mengabaikan kesalahan dan membiarkan data asli jika konversi gagal.</p><h2>Cara dan Contoh Menerapkan Astype Function</h2><p>Mari kita mulai dengan sebuah contoh <em>dataset</em> dalam bentuk DataFrame Pandas yang akan digunakan untuk mengilustrasikan penggunaan fungsi <strong>astype</strong>. Misalkan kita memiliki data berikut:</p><figure style="max-width:1434pxpx" class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img src="https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/668a3c880cce120d1f888444_AD_4nXcp9zUusHEpZQPGr0uJEUDBJRYOZ_delsnb6guFdhlUdrE_wA9P0RxsjXt33g97GOffRr7nx2ERlBjQhBCBJ3LPn3OFv_4Raybhc3JaqWOgfCDKOIlT0Ctz3_RCTyYeKsYpJtsZBPUM_m9b6cJjx6ZMAkc.webp" loading="lazy" alt=""/></div></figure><p>Selanjutnya, kita akan melalui proses mengubah tipe data kolom dari DataFrame di atas menggunakan fungsi <strong>astype</strong>.</p><h3><strong>#1 Mengubah tipe data menjadi string</strong></h3><ul role="list"><li>Tentukan kolom yang ingin kamu ubah tipe datanya, misalnya kolom "<strong>ID</strong>" dan "<strong>Pendapatan</strong>".</li><li>Gunakan fungsi <strong>astype</strong> untuk mengubah tipe data kolom tersebut menjadi <em>string</em>.</li></ul><p>Contoh:</p><div class="w-embed"><pre><code class="language-markup"><!--import pandas as pd
# Membuat DataFrame
data = {'ID': [1, 2, 3],
'Umur': [25, 30, 22],
'Pendapatan': [50000, 54000, 48000]}
df = pd.DataFrame(data)
# Mengubah tipe data menjadi string
df['ID'] = df['ID'].astype(str)
df['Pendapatan'] = df['Pendapatan'].astype(str)
# Menampilkan DataFrame
print(df.dtypes)
print(df)
Output:
ID object
Umur int64
Pendapatan object
dtype: object
#2 Mengubah tipe data menjadi integer
Misalnya, kolom "Umur" sudah berupa integer, kita bisa mencoba mengubah "Pendapatan" kembali ke integer (jika sebelumnya sudah diubah ke string).
Contoh:
# Mengubah tipe data kembali menjadi integer
df['Pendapatan'] = df['Pendapatan'].astype(int)
# Menampilkan DataFrame
print(df.dtypes)
print(df)
Output:
ID object
Umur int64
Pendapatan int64
dtype: object
#3 Mengubah tipe data menjadi float
Kita akan mengubah kolom "Pendapatan" menjadi float.
Contoh:
# Mengubah tipe data menjadi float
df['Pendapatan'] = df['Pendapatan'].astype(float)
# Menampilkan DataFrame
print(df.dtypes)
print(df)
Output:
ID object
Umur int64
Pendapatan float64
dtype: object
#4 Mengubah tipe data menjadi category
Misalnya, kita ingin mengategorikan kolom "Umur" menjadi beberapa kategori usia.
Contoh:
# Mengubah tipe data menjadi category
df['Umur'] = df['Umur'].astype('category')
# Menampilkan DataFrame
print(df.dtypes)
print(df)
Output:
ID object
Umur category
Pendapatan float64
dtype: object
FAQ (Frequently Asked Questions)
Bagaimana cara menggunakan astype untuk mengubah beberapa kolom sekaligus?
Agar bisa menggunakan fungsi astype di Pandas untuk mengubah tipe data beberapa kolom sekaligus, kamu bisa menggunakan dictionary yang memetakan nama kolom ke tipe data yang diinginkan.
Ini memungkinkan kamu menentukan tipe data yang berbeda untuk kolom yang berbeda dalam satu baris kode.
Bagaimana astype menghandle data null atau NaN saat konversi tipe data?
Saat menggunakan fungsi astype untuk mengubah tipe data dalam Pandas, data null atau NaN (Not a Number) dihandle dengan cara yang berbeda tergantung pada target tipe data:
Tipe data yang mendukung NaN: jika tipe data target mendukung nilai NaN, seperti float, object, dan beberapa variasi tipe datetime, konversi akan terjadi tanpa masalah. Nilai NaN akan tetap terjaga sebagai NaN setelah konversi.
Tipe Data yang tidak mendukung NaN: beberapa tipe data, seperti int, secara tradisional tidak mendukung nilai NaN dalam Pandas. Namun, Pandas versi terbaru telah memperkenalkan tipe data integer baru (disebut "Integer Extension types" atau "nullable integers") yang menggunakan huruf besar di awal, seperti Int32, Int64, dll., yang mendukung nilai NaN.
Jika kamu mencoba mengubah kolom yang mengandung NaN ke tipe data integer tradisional (int32, int64, dll.), Pandas akan menghasilkan error. Untuk mengatasi ini, kamu dapat menggunakan tipe data integer nullable atau mengganti nilai NaN dengan nilai lain sebelum konversi.