Heim >Backend-Entwicklung >Python-Tutorial >Wie ersetzt man NaN-Werte in einem Pandas DataFrame durch Spaltendurchschnitte mithilfe der „fillna'-Methode?

Wie ersetzt man NaN-Werte in einem Pandas DataFrame durch Spaltendurchschnitte mithilfe der „fillna'-Methode?

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 18:11:30329Durchsuche

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

Ersetzen von NaN-Werten durch Spaltendurchschnitte in einem Pandas-Datenrahmen

Beim Umgang mit fehlenden Daten in einem Datenrahmen, der hauptsächlich mit reellen Zahlen gefüllt ist, wird NaN ersetzt Werte mit geeigneten Alternativen zu verbinden, ist unerlässlich. In diesem Fall versuchen wir, NaN-Werte durch die Durchschnittswerte der Spalten zu ersetzen, in denen sie sich befinden.

Um diesem Bedarf gerecht zu werden, bietet Pandas eine praktische Methode: DataFrame.fillna. Mithilfe dieser Funktion können wir NaN-Werte direkt mit Spaltendurchschnitten füllen:

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

Die DataFrame.fillna-Methode akzeptiert verschiedene Eingaben als Füllwert, einschließlich eines Skalars, eines Diktats oder einer Reihe. In diesem Fall übergeben wir „column_means“, eine Reihe, die den Mittelwert jeder Spalte enthält.

Hier ist ein Beispiel zur Veranschaulichung des Prozesses:

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

Ausgabe:

          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

Wie dargestellt, wurden die NaN-Werte durch die entsprechenden Spaltendurchschnitte ersetzt, wodurch ein vollständiger und konsistenter Datenrahmen entsteht.

Das obige ist der detaillierte Inhalt vonWie ersetzt man NaN-Werte in einem Pandas DataFrame durch Spaltendurchschnitte mithilfe der „fillna'-Methode?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn