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
Libérer: 2024-10-29 18:11:30
original
333 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal