Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah anda menggantikan nilai NaN dalam Pandas DataFrame dengan purata lajur menggunakan kaedah `fillna`?
Menggantikan Nilai NaN dengan Purata Lajur dalam Pandas DataFrame
Apabila berurusan dengan data yang hilang dalam DataFrame yang diisi terutamanya dengan nombor nyata, menggantikan NaN nilai dengan alternatif yang sesuai adalah penting. Dalam kes ini, kami berusaha untuk menggantikan nilai NaN dengan purata lajur di mana ia berada.
Untuk menangani keperluan ini, panda menyediakan kaedah yang mudah: DataFrame.fillna. Dengan menggunakan fungsi ini, kami boleh terus mengisi nilai NaN dengan purata lajur:
<code class="python">df = ... # Your DataFrame with NaN values # Calculate the mean of each column column_means = df.mean() # Replace NaN values with the column averages filled_df = df.fillna(column_means)</code>
Kaedah DataFrame.fillna menerima pelbagai input sebagai nilai isian, termasuk skalar, dict atau Siri. Dalam keadaan ini, kami menghantar column_means, Siri yang mengandungi min setiap lajur.
Berikut ialah contoh untuk menggambarkan proses:
<code class="python">import pandas as pd df = pd.DataFrame({ 'A': [-0.166919, -0.297953, -0.120211, NaN, NaN, -0.788073, -0.916080, -0.887858, 1.948430, 0.019698], 'B': [0.979728, -0.912674, -0.540679, -2.027325, NaN, NaN, -0.612343, 1.033826, 1.025011, -0.795876], 'C': [-0.632955, -1.365463, -0.680481, 1.533582, 0.461821, NaN, NaN, NaN, -2.982224, -0.046431] }) print(df) # Calculate the mean of each column column_means = df.mean() # Replace NaN values with the column averages filled_df = df.fillna(column_means) print(filled_df)</code>
Output:
A B C 0 -0.166919 0.979728 -0.632955 1 -0.297953 -0.912674 -1.365463 2 -0.120211 -0.540679 -0.680481 3 NaN -2.027325 1.533582 4 NaN NaN 0.461821 5 -0.788073 NaN NaN 6 -0.916080 -0.612343 NaN 7 -0.887858 1.033826 NaN 8 1.948430 1.025011 -2.982224 9 0.019698 -0.795876 -0.046431 A B C 0 -0.166919 0.979728 -0.632955 1 -0.297953 -0.912674 -1.365463 2 -0.120211 -0.540679 -0.680481 3 -0.151121 -2.027325 1.533582 4 -0.151121 -0.231291 0.461821 5 -0.788073 -0.231291 -0.530307 6 -0.916080 -0.612343 -0.530307 7 -0.887858 1.033826 -0.530307 8 1.948430 1.025011 -2.982224 9 0.019698 -0.795876 -0.046431
Seperti yang digambarkan, nilai NaN telah digantikan dengan purata lajur yang sesuai, memberikan DataFrame yang lengkap dan konsisten.
Atas ialah kandungan terperinci Bagaimanakah anda menggantikan nilai NaN dalam Pandas DataFrame dengan purata lajur menggunakan kaedah `fillna`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!