Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah anda menggantikan nilai NaN dalam Pandas DataFrame dengan purata lajur menggunakan kaedah `fillna`?

Bagaimanakah anda menggantikan nilai NaN dalam Pandas DataFrame dengan purata lajur menggunakan kaedah `fillna`?

Barbara Streisand
Barbara Streisandasal
2024-10-29 18:11:30329semak imbas

How do you replace NaN values in a Pandas DataFrame with column averages using the `fillna` method?

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!

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