Data Wrangling

Pandas DataFrame’lerinde NaN Değerlerini Sıfırlarla Etkin Bir Şekilde Değiştirme

Spread the love

Eksik veriler, sıklıkla NaN (Sayı Değil) değerleri olarak temsil edilir ve veri analizinde yaygın bir sorundur. Veri manipülasyonu için güçlü bir Python kütüphanesi olan Pandas, bu eksik değerleri işlemek için verimli yöntemler sunar. Bu makale, en etkili yaklaşımlara odaklanarak, belirli bir sütundaki veya tüm Pandas DataFrame’indeki tüm NaN değerlerinin sıfırlarla nasıl değiştirileceğini göstermektedir.

İçerik Tablosu

Hedeflenen NaN Değiştirme için fillna() Metodu

fillna() metodu, belirli sütunlardaki NaN değerlerini sıfırlarla değiştirmek için önerilen yaklaşımdır. Verimlidir ve eksik verileri doğrudan ele alır.

Örnek bir DataFrame ile gösterelim:


import pandas as pd
import numpy as np

data = {'A': [1, 2, np.nan, 4, 5], 
        'B': [6, np.nan, 8, 9, 10],
        'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)
print("Orijinal DataFrame:n", df)

Bu şunu üretir:


Orijinal DataFrame:
     A     B   C
0  1.0   6.0  11
1  2.0   NaN  12
2  NaN   8.0  13
3  4.0   9.0  14
4  5.0  10.0  15

‘A’ sütunundaki NaN değerlerini sıfırlarla değiştirmek için:


df['A'] = df['A'].fillna(0)
print("n'A' sütunundaki NaN değerleri 0 ile doldurulduktan sonra DataFrame:n", df)

Sonuç olarak:


'A' sütunundaki NaN değerleri 0 ile doldurulduktan sonra DataFrame:
     A     B   C
0  1.0   6.0  11
1  2.0   NaN  12
2  0.0   8.0  13
3  4.0   9.0  14
4  5.0  10.0  15

Birden fazla sütundaki NaN değerlerini değiştirmek de aynı derecede basittir:


df[['A', 'B']] = df[['A', 'B']].fillna(0)
print("n'A' ve 'B' sütunlarındaki NaN değerleri 0 ile doldurulduktan sonra DataFrame:n", df)

Genel Değer Değiştirme için replace() Metodu

replace() metodu, NaN dahil olmak üzere çeşitli değerleri değiştirmek için uygun daha genel bir yaklaşım sunar. Bununla birlikte, yalnızca NaN değerlerini sıfırlarla değiştirmek için, fillna() metodu verimliliği ve açıklığı nedeniyle genellikle tercih edilir.

DataFrame’deki tüm NaN değerlerini replace() kullanarak 0 ile değiştirmek için:


df = df.replace(np.nan, 0)
print("nreplace() kullanılarak tüm NaN değerleri 0 ile değiştirildikten sonra DataFrame:n", df)

Bu, DataFrame’deki tüm NaN değerlerini değiştirir. replace(), aynı anda birden fazla değeri değiştirmek gibi daha karmaşık senaryoları ele alırken öne çıkar:


df = df.replace({np.nan: 0, -999: 0})  # Örnek; DataFrame'de -999'un bulunduğunu varsayar
print("nNaN ve -999 değerleri 0 ile değiştirildikten sonra DataFrame:n", df)

Özetle, her iki yöntem de amacı gerçekleştirirken, fillna() belirli sütunlardaki hedeflenen NaN değiştirme için daha verimli ve okunabilirdir; replace() ise daha geniş değer değiştirmeleri için daha fazla esneklik sağlar. Belirli veri manipülasyon görevinize en uygun yöntemi seçin.

Bir yanıt yazın

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