Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengaitkan Nilai Hilang dalam Panda Menggunakan Cara Kumpulan?

Bagaimana untuk Mengaitkan Nilai Hilang dalam Panda Menggunakan Cara Kumpulan?

Susan Sarandon
Susan Sarandonasal
2024-12-05 16:29:10592semak imbas

How to Impute Missing Values in Pandas Using Group Means?

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:

  • Fungsi min() mengira nilai min dalam setiap kumpulan, menghasilkan DataFrame dengan cara berkumpulan.
  • Fungsi transform() menggunakan kaedah fillna() untuk setiap kumpulan, menggunakan nilai min sebagai nilai isian. Ini mengisi nilai yang hilang dengan min khusus untuk setiap kumpulan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn