Ersetzen Sie NaN-Werte durch Spaltendurchschnitte in einem Pandas-DataFrame
In einem Pandas-DataFrame können NaN-Werte auftreten, die eine Ersetzung durch entsprechende Werte erforderlich machen zur Datenanalyse. Dieser Artikel befasst sich mit der Herausforderung, NaNs durch den Durchschnitt jeder entsprechenden Spalte zu ersetzen.
Im Gegensatz zu einem Numpy-Array kann ein Pandas-DataFrame die für ein Numpy-Array verwendete Mittelungstechnik nicht direkt anwenden. Stattdessen bietet die Methode DataFrame.fillna eine unkomplizierte Lösung.
Verwendung von DataFrame.fillna
Um NaN-Werte mit dem Spaltenmittelwert zu füllen, verwenden Sie der folgende Code:
<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>
Beispiel:
Betrachten Sie den folgenden DataFrame mit NaN-Werten:
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
Verwenden von DataFrame. fillna, die NaN-Werte werden durch die Spaltenmittelwerte ersetzt:
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
Daher wurden die NaN-Werte durch die entsprechenden Spaltendurchschnitte ersetzt.
Das obige ist der detaillierte Inhalt vonWie ersetzt man NaN-Werte in einem Pandas-DataFrame durch den Durchschnitt jeder entsprechenden Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!