Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda menggantikan nilai NaN dalam DataFrame panda dengan purata setiap lajur yang sepadan?

Bagaimanakah anda menggantikan nilai NaN dalam DataFrame panda dengan purata setiap lajur yang sepadan?

Susan Sarandon
Susan Sarandonasal
2024-10-28 18:17:30287semak imbas

How do you replace NaN values in a pandas DataFrame with the average of each corresponding column?

Ganti Nilai NaN dengan Purata Lajur dalam DataFrame panda

Dalam DataFrame panda, nilai NaN boleh timbul, memerlukan penggantian dengan nilai yang sesuai untuk analisis data. Artikel ini menangani cabaran untuk menggantikan NaN dengan purata setiap lajur yang sepadan.

Tidak seperti tatasusunan numpy, DataFrame panda tidak boleh menggunakan teknik purata yang digunakan untuk tatasusunan numpy. Sebaliknya, kaedah DataFrame.fillna menyediakan penyelesaian yang mudah.

Menggunakan DataFrame.fillna

Untuk mengisi nilai NaN dengan min lajur, gunakan kod berikut:

<code class="python">import pandas as pd

# Create a DataFrame with NaN values
df = pd.DataFrame({
    'A': [-0.166919, -0.297953, -0.120211, np.nan, np.nan, -0.788073, -0.916080, -0.887858, 1.948430, 0.019698],
    'B': [0.979728, -0.912674, -0.540679, -2.027325, np.nan, np.nan, -0.612343, 1.033826, 1.025011, -0.795876],
    'C': [-0.632955, -1.365463, -0.680481, 1.533582, 0.461821, np.nan, np.nan, np.nan, -2.982224, -0.046431]
})

print("Original DataFrame with NaN values:")
print(df)

# Calculate column means
column_means = df.mean()
print("\nColumn means:")
print(column_means)

# Replace NaN values with column means
df_filled = df.fillna(column_means)
print("\nDataFrame with NaN values replaced by column means:")
print(df_filled)</code>

Contoh:

Pertimbangkan DataFrame berikut dengan nilai NaN:

          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

Menggunakan DataFrame. fillna, nilai NaN digantikan dengan lajur bermakna:

           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

Oleh itu, nilai NaN telah digantikan dengan purata lajur yang sesuai.

Atas ialah kandungan terperinci Bagaimanakah anda menggantikan nilai NaN dalam DataFrame panda dengan purata setiap lajur yang sepadan?. 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