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.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir