Pandalar'da nan değerlerine sahip satırlar nasıl silinir
Çoğu zaman bir pandas DataFrame’de NaN değerleri içeren satırları kaldırmak isteyebilirsiniz. Neyse ki pandas dropna() işlevini kullanarak bunu yapmak kolaydır.
Bu eğitimde, bu fonksiyonun aşağıdaki pandalar DataFrame’de kullanılmasına ilişkin birkaç örnek gösterilmektedir:
import numpy as np import scipy.stats as stats #create DataFrame with some NaN values df = pd.DataFrame({'rating': [np.nan, 85, np.nan, 88, 94, 90, 76, 75, 87, 86], 'points': [np.nan, 25, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, np.nan, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view DataFrame df rating points assists rebounds 0 NaN NaN 5.0 11 1 85.0 25.0 7.0 8 2 NaN 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7
Örnek 1: NaN değerlerine sahip satırları silin
NaN değerleri içeren tüm satırları kaldırmak için aşağıdaki sözdizimini kullanabiliriz:
df. dropna ()
rating points assists rebounds
1 85.0 25.0 7.0 8
4 94.0 27.0 5.0 6
5 90.0 20.0 7.0 9
6 76.0 12.0 6.0 6
7 75.0 15.0 9.0 10
8 87.0 14.0 9.0 10
9 86.0 19.0 5.0 7
Örnek 2: Tüm NaN değerlerine sahip satırları kaldırın
Her sütundaki tüm NaN değerlerini içeren tüm satırları kaldırmak için aşağıdaki sözdizimini kullanabiliriz:
df. dropna (how=' all ') rating points assists rebounds 0 NaN NaN 5.0 11 1 85.0 25.0 7.0 8 2 NaN 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7
Bu özel DataFrame’de tüm NaN değerlerine sahip hiçbir satır yoktu, dolayısıyla satırların hiçbiri silinmedi.
Örnek 3: Belirli bir eşiğin altındaki satırları silin
En azından belirli sayıda NaN olmayan değere sahip olmayan tüm satırları kaldırmak için aşağıdaki sözdizimini kullanabiliriz:
df. dropna (thresh= 3 ) rating points assists rebounds 1 85.0 25.0 7.0 8 2 NaN 14.0 7.0 10 3 88.0 16.0 NaN 6 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7
Orijinal DataFrame’in ilk satırı en az 3 NaN olmayan değer içermiyordu, dolayısıyla kaldırılan tek satır bu oldu.
Örnek 4: Belirli bir sütunda Nan değerlerine sahip bir satırı silin
Belirli bir sütunda NaN değeri olan tüm satırları kaldırmak için aşağıdaki sözdizimini kullanabiliriz:
df. dropna (subset=[' assists ']) rating points assists rebounds 0 NaN NaN 5.0 11 1 85.0 25.0 7.0 8 2 NaN 14.0 7.0 10 4 94.0 27.0 5.0 6 5 90.0 20.0 7.0 9 6 76.0 12.0 6.0 6 7 75.0 15.0 9.0 10 8 87.0 14.0 9.0 10 9 86.0 19.0 5.0 7
Örnek 5: NaN içeren satırları sildikten sonra dizini sıfırlayın
NaN değerlerine sahip satırları sildikten sonra DataFrame’in dizinini sıfırlamak için aşağıdaki sözdizimini kullanabiliriz:
#drop all rows that have any NaN values df = df. dropna () #reset index of DataFrame df = df. reset_index (drop=True) #view DataFrame df rating points assists rebounds 0 85.0 25.0 7.0 8 1 94.0 27.0 5.0 6 2 90.0 20.0 7.0 9 3 76.0 12.0 6.0 6 4 75.0 15.0 9.0 10 5 87.0 14.0 9.0 10 6 86.0 19.0 5.0 77
dropna() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.