Data Wrangling

Pandas DataFrame’lerinde Verimli Ondalıklı-Tam Sayı Dönüşümü

Spread the love

Pandas, sayısal veriler içeren DataFrame’ler ile sıkça kullanılan güçlü bir Python veri manipülasyon kütüphanesidir. Yaygın bir görev, kayan noktalı sayı (float) sütunlarını tam sayılara dönüştürmeyi içerir. Bu makale, Pandas DataFrame’inde bu dönüşüm için verimli yöntemleri ayrıntılarıyla açıklayarak güçlü ve zayıf yönlerini vurgular.

İçerik Tablosu

Float’tan Int’a Dönüşüm için astype(int) Kullanımı

astype(int) yöntemi, Pandas’ta tür dönüşümü için basit bir yaklaşım sağlar. Bir sütunun veri türünü doğrudan bir tam sayıya dönüştürür. Bununla birlikte, davranışını anlamak çok önemlidir: ondalık kısmı keser, etkili bir şekilde bir taban işlemi gerçekleştirir. Bu, kesirli bileşeni her zaman aşağı yuvarlayarak atar.

Örnek:


import pandas as pd

data = {'col1': [1.5, 2.7, 3.2, 4.9, 5.1]}
df = pd.DataFrame(data)

df['col1_int'] = df['col1'].astype(int)
print(df)

Çıktı:


   col1  col1_int
0   1.5         1
1   2.7         2
2   3.2         3
3   4.9         4
4   5.1         5

Bu yöntemin basitliği avantajıdır, ancak esnek olmayan yuvarlama davranışı, diğer yuvarlama stratejilerine ihtiyaç duyulduğunda uygulanabilirliğini sınırlar.

Esnek Dönüşüm için pd.to_numeric()‘ten Faydalanma

pd.to_numeric() daha fazla kontrol ve esneklik sunar. Birincil olarak çeşitli veri türlerini sayısal formatlara dönüştürmek için tasarlanmış olsa da, özellikle yuvarlama fonksiyonlarıyla birleştirildiğinde, float’tan int’e dönüşümler için oldukça etkilidir.

Yuvarlama ile Örnek:


import pandas as pd
import numpy as np

data = {'col1': [1.5, 2.7, 3.2, 4.9, 5.1, np.nan]}
df = pd.DataFrame(data)

df['col1_int'] = pd.to_numeric(df['col1'], errors='coerce').round().astype(int)
print(df)

Çıktı:


   col1  col1_int
0   1.5         2
1   2.7         3
2   3.2         3
3   4.9         5
4   5.1         5
5   NaN        NaN

Burada, errors='coerce', sayısal olmayan değerleri NaN‘ye dönüştürerek zarif bir şekilde işler. round(), son astype(int) dönüşümünden önce en yakın tam sayıya yuvarlar.

Hata İşleme ve Gelişmiş Yuvarlama

Yuvarlama üzerinde daha hassas kontrol için NumPy fonksiyonlarını kullanın:

  • np.floor(): En yakın tam sayıya aşağı yuvarlar.
  • np.ceil(): En yakın tam sayıya yukarı yuvarlar.

pd.to_numeric() içindeki errors parametresini kullanarak olası hataları (sayısal olmayan değerler gibi) işlemeyi unutmayın. 'coerce' seçimi, sorunlu değerleri NaN ile değiştirir ve hataları önler. Alternatif olarak, 'raise' bir istisna oluşturacak ve 'ignore' sayısal olmayan değerleri olduğu gibi bırakacaktır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir