Pandas, veri manipülasyonu ve analizi için güçlü bir Python kütüphanesidir. Veri tipi yönetimi, verimli veri işleme için çok önemlidir. Bu makale, Pandas DataFrame’lerinizdeki sütun veri tiplerini etkili bir şekilde değiştirmenin çeşitli yöntemlerini ele almaktadır.
İçindekiler
pd.to_numeric()
ile Sayısal Türlere Dönüştürmeastype()
ile Esnek Tip Dönüşümüinfer_objects()
ile Akıllı Tip Çıkarımı- Veri Tipi Dönüştürme İçin En İyi Uygulamalar
1. pd.to_numeric()
ile Sayısal Türlere Dönüştürme
pd.to_numeric()
fonksiyonu, sütunları sayısal veri tiplerine (int
, float
) dönüştürmek için idealdir. Veri içe aktarılırken sıkça karşılaşılan, sayıların dize gösterimlerini içeren sütunlarla çalışırken özellikle kullanışlıdır.
import pandas as pd
data = {'col1': ['1', '2', '3', '4', '5'], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)
df['col1'] = pd.to_numeric(df['col1'])
print(df.dtypes)
errors
parametresi, hataların nasıl ele alınacağını yönetir:
'coerce'
: Geçersiz değerlerNaN
olur.'raise'
: Geçersiz değerler için bir istisna oluşturur.'ignore'
: Geçersiz değerleri yok sayar.
data = {'col1': ['1', '2', 'a', '4', '5']}
df = pd.DataFrame(data)
df['col1'] = pd.to_numeric(df['col1'], errors='coerce')
print(df)
2. astype()
ile Esnek Tip Dönüşümü
astype()
yöntemi, veri tiplerini değiştirmek için genel bir yaklaşım sağlar. Pratik olarak desteklenen herhangi bir tipe (int
, float
, str
, bool
, datetime
, vb.) dönüştürebilirsiniz.
data = {'col1': [1, 2, 3, 4, 5], 'col2': [True, False, True, False, True]}
df = pd.DataFrame(data)
df['col1'] = df['col1'].astype(str)
df['col2'] = df['col2'].astype(int)
print(df.dtypes)
Dikkat: Tip dönüştürme, veri kaybına yol açabilir (örneğin, float
‘ı int
‘e dönüştürürken ondalık kesirlerin kesilmesi).
3. infer_objects()
ile Akıllı Tip Çıkarımı
infer_objects()
yöntemi, “object” sütunlarında karışık veri tiplerine sahip DataFrame’ler için kullanışlıdır. Her sütun için en uygun tipi çıkarmaya çalışır.
data = {'col1': ['1', 2, '3.14', 4], 'col2': ['A', 'B', 'C', 'D']}
df = pd.DataFrame(data)
df = df.infer_objects()
print(df.dtypes)
Not: Tutarsız veriler, başarılı tip çıkarımını engelleyebilir.
4. Veri Tipi Dönüştürme İçin En İyi Uygulamalar
Değişiklikleri doğrulamak ve beklenmedik sonuçlardan kaçınmak için dönüşümden önce ve sonra verilerinizi her zaman inceleyin. Veri tiplerini ve eksik değerleri kontrol etmek için .info()
yöntemini kullanmayı düşünün. pd.to_numeric()
‘deki errors
parametresini kullanarak veya sorunlu değerleri kaldırmak veya değiştirmek için verilerinizi önceden işleyerek potansiyel hataları düzgün bir şekilde ele alın.