Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengaitkan Nilai Hilang dalam Panda Menggunakan Cara Kumpulan?
Imputasi NaN dengan Min Kumpulan dalam Panda
Mengisi nilai yang hilang menggunakan min dalam setiap kumpulan adalah tugas biasa apabila bekerja dengan data jadual. Pertimbangkan DataFrame berikut dengan nilai yang tiada:
df = pd.DataFrame({'value': [1, np.nan, np.nan, 2, 3, 1, 3, np.nan, 3], 'name': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C']})
Matlamat kami adalah untuk mengaitkan nilai yang hilang dengan min setiap kumpulan berdasarkan lajur 'nama'.
Untuk mencapai matlamat ini, kami boleh menggunakan fungsi groupby() dan transform() dalam Pandas:
grouped = df.groupby('name').mean() df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
Fungsi groupby() mencipta kumpulan berdasarkan lajur 'nama', dan min() mengira nilai min untuk setiap kumpulan. Fungsi transform() menggunakan nilai min ini pada setiap baris dalam setiap kumpulan dan mengisi nilai yang tiada.
DataFrame yang terhasil:
print(df) name value 0 A 1 1 A 1 2 B 2 3 B 2 4 B 3 5 B 1 6 C 3 7 C 3 8 C 3
Penjelasan:
Penyelesaian Alternatif:
Satu lagi pendekatan kepada imputasi nilai hilang berasaskan kumpulan ialah:
impute_cols = ['value'] df[impute_cols] = df[impute_cols].fillna(df.groupby('name')[impute_cols].transform('mean'))
Kedua-dua kaedah mencapai hasil yang sama, tetapi pendekatan yang kedua memberikan lebih fleksibiliti apabila mengira berbilang lajur.
Atas ialah kandungan terperinci Bagaimana untuk Mengaitkan Nilai Hilang dalam Panda Menggunakan Cara Kumpulan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!