Maison >développement back-end >Tutoriel Python >Comment remplacer les valeurs NaN dans un Pandas DataFrame par des moyennes de colonnes à l'aide de la méthode « fillna » ?

Comment remplacer les valeurs NaN dans un Pandas DataFrame par des moyennes de colonnes à l'aide de la méthode « fillna » ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-29 18:11:30379parcourir

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

Remplacement des valeurs NaN par des moyennes de colonnes dans un DataFrame Pandas

Lorsque vous traitez des données manquantes dans un DataFrame rempli principalement de nombres réels, remplacez NaN valeurs avec des alternatives appropriées est essentiel. Dans ce cas, nous cherchons à remplacer les valeurs NaN par les moyennes des colonnes où elles résident.

Pour répondre à ce besoin, pandas propose une méthode pratique : DataFrame.fillna. En utilisant cette fonction, nous pouvons remplir directement les valeurs NaN avec des moyennes de colonnes :

<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>

La méthode DataFrame.fillna accepte diverses entrées comme valeur de remplissage, notamment un scalaire, un dict ou une série. Dans ce cas, nous passons column_means, une série contenant la moyenne de chaque colonne.

Voici un exemple pour illustrer le processus :

<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>

Sortie :

          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

Comme illustré, les valeurs NaN ont été remplacées par les moyennes de colonnes appropriées, fournissant un DataFrame complet et cohérent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn