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.