Cara menghapus baris dengan nilai nan di pandas


Seringkali Anda mungkin ingin menghapus baris yang berisi nilai NaN di pandas DataFrame. Untungnya, hal ini mudah dilakukan dengan menggunakan fungsi pandas dropna() .

Tutorial ini menunjukkan beberapa contoh penggunaan fungsi ini pada pandas DataFrame berikut:

 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

Contoh 1: Hapus baris dengan nilai NaN

Kita dapat menggunakan sintaks berikut untuk menghapus semua baris yang mengandung nilai NaN :

 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

Contoh 2: Hapus baris dengan semua nilai NaN

Kita dapat menggunakan sintaks berikut untuk menghapus semua baris yang berisi semua nilai NaN di setiap kolom:

 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

Tidak ada baris dengan semua nilai NaN di DataFrame khusus ini, jadi tidak ada baris yang dihapus.

Contoh 3: Hapus baris di bawah ambang batas tertentu

Kita dapat menggunakan sintaks berikut untuk menghapus semua baris yang tidak memiliki setidaknya sejumlah nilai non-NaN tertentu:

 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

Baris pertama dari DataFrame asli tidak berisi setidaknya 3 nilai non-NaN, jadi itulah satu-satunya baris yang dihapus.

Contoh 4: Hapus baris dengan nilai Nan di kolom tertentu

Kita dapat menggunakan sintaks berikut untuk menghapus semua baris yang memiliki nilai NaN di kolom tertentu:

 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

Contoh 5: Reset indeks setelah menghapus baris dengan NaNs

Kita dapat menggunakan sintaks berikut untuk mereset indeks DataFrame setelah menghapus baris dengan nilai NaN:

 #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

Anda dapat menemukan dokumentasi lengkap untuk fungsi dropna() di sini .

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *