Pandas: cara mengisi nilai nan dengan rata-rata (3 contoh)


Anda dapat menggunakan fungsi fillna() untuk mengganti nilai NaN di pandas DataFrame.

Berikut tiga cara umum untuk menggunakan fitur ini:

Cara 1: Isikan nilai NaN pada kolom dengan rata-rata

 df[' col1 '] = df[' col1 ']. fillna (df[' col1 ']. mean ())

Metode 2: Isi nilai NaN di beberapa kolom dengan rata-rata

 df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. fillna (df[[' col1 ',' col2 ']]. mean ())

Cara 3: Isi nilai NaN di semua kolom dengan rata-rata

 df = df. fillna ( df.mean ())

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan pandas DataFrame berikut:

 import numpy as np
import pandas as pd

#create DataFrame with some NaN values
df = pd. DataFrame ({' rating ': [np.nan, 85, np.nan, 88, 94, 90, 76, 75, 87, 86],
                   ' points ': [25, np.nan, 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 25.0 5.0 11
1 85.0 NaN 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: Isikan nilai NaN pada kolom dengan rata-rata

Kode berikut menunjukkan cara mengisi nilai NaN pada kolom rating dengan nilai rata-rata kolom rating :

 #fill NaNs with column mean in 'rating' column
df[' rating '] = df[' rating ']. fillna (df[' rating ']. mean ())

#view updated DataFrame
df

	rating points assists rebounds
0 85.125 25.0 5.0 11
1 85,000 NaN 7.0 8
2 85.125 14.0 7.0 10
3 88,000 16.0 NaN 6
4 94,000 27.0 5.0 6
5 90,000 20.0 7.0 9
6 76,000 12.0 6.0 6
7 75,000 15.0 9.0 10
8 87,000 14.0 9.0 10
9 86,000 19.0 5.0 7

Nilai rata-rata pada kolom rating adalah 85.125 , sehingga setiap nilai NaN pada kolom rating diisi dengan nilai tersebut.

Contoh 2: Isi nilai NaN di beberapa kolom dengan rata-rata

Kode berikut menunjukkan cara mengisi nilai NaN pada kolom rating dan poin dengan rata-rata kolomnya masing-masing:

 #fill NaNs with column means in 'rating' and 'points' columns
df[[' rating ', ' points ']] = df[[' rating ', ' points ']]. fillna (df[[' rating ',' points ']]. mean ())

#view updated DataFrame
df

	rating points assists rebounds
0 85.125 25.0 5.0 11
1 85,000 18.0 7.0 8
2 85.125 14.0 7.0 10
3 88,000 16.0 NaN 6
4 94,000 27.0 5.0 6
5 90,000 20.0 7.0 9
6 76,000 12.0 6.0 6
7 75,000 15.0 9.0 10
8 87,000 14.0 9.0 10
9 86,000 19.0 5.0 7

Nilai NaN pada kolom nilai dan poin telah diisi dengan rata-rata kolomnya masing-masing.

Contoh 3: Isi nilai NaN di semua kolom dengan rata-rata

Kode berikut menunjukkan cara mengisi nilai NaN di setiap kolom dengan rata-rata kolom:

 #fill NaNs with column means in each column 
df = df. fillna ( df.mean ())

#view updated DataFrame
df

        rating points assists rebounds
0 85.125 25.0 5.000000 11
1 85,000 18.0 7,000000 8
2 85.125 14.0 7.000000 10
3 88,000 16.0 6.666667 6
4 94,000 27.0 5,000000 6
5 90,000 20.0 7,000000 9
6 76,000 12.0 6,000000 6
7 75,000 15.0 9,000000 10
8 87,000 14.0 9,000000 10
9 86,000 19.0 5,000000 7

Perhatikan bahwa nilai NaN pada setiap kolom telah diisi dengan rata-rata kolomnya.

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

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:

Cara menghitung nilai yang hilang di panda
Cara menghapus baris dengan nilai NaN di Pandas
Cara menghapus baris yang berisi nilai tertentu di Pandas

Tambahkan komentar

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