Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengisi Nilai Hilang dalam Panda dengan Min Kumpulan?

Bagaimana untuk Mengisi Nilai Hilang dalam Panda dengan Min Kumpulan?

Linda Hamilton
Linda Hamiltonasal
2024-12-11 12:58:11489semak imbas

How to Fill Missing Values in Pandas with the Group Mean?

Mengisi Nilai Yang Hilang dengan Min dalam Setiap Kumpulan dalam Panda

Dalam konteks ini, objektif anda adalah untuk mengisi nilai yang hilang ("NaN" ) dengan nilai min untuk setiap kumpulan berbeza dalam lajur "nama". Untuk mencapai matlamat ini, anda boleh menggunakan fungsi transformasi Pandas bersama-sama dengan kaedah fillna.

Mari kita pertimbangkan contoh DataFrame yang disediakan:

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']
})

# Original DataFrame
print(df)

Untuk mengira nilai min dalam setiap "nama" kumpulan, anda boleh menggunakan fungsi kumpulan mengikut:

grouped = df.groupby('name').mean()

Walau bagaimanapun, dikumpulkan ialah DataFrame yang mengandungi nilai min, dan kita perlu menggunakannya kembali pada DataFrame asal untuk mengisi nilai yang tiada. Di sinilah transformasi menjadi berguna:

df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))

Berikut ialah pecahan kod:

  • df.groupby("name") mengumpulkan DataFrame mengikut lajur "nama".
  • lambda x: x.fillna(x.mean()) mentakrifkan fungsi tanpa nama yang mengambil setiap kumpulan (diwakili oleh x) sebagai input dan melaksanakan operasi berikut:

    • Ia mengisi nilai yang tiada ("NaN") dengan nilai min yang dikira menggunakan x.mean().
  • df["value"] menggantikan lajur "value" dalam DataFrame asal dengan nilai diubah yang mengisi yang tiada nilai.

Selepas melaksanakan kod, DataFrame yang terhasil akan mengandungi nilai yang diisi seperti yang dikehendaki:

# Adjusted DataFrame
print(df)

Atas ialah kandungan terperinci Bagaimana untuk Mengisi Nilai Hilang dalam Panda dengan Min 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