Sie können einfach verwenden DataFrame.fillna
, um die nan
's direkt zu füllen :
In [27]: df
Out[27]:
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
In [28]: df.mean()
Out[28]:
A -0.151121
B -0.231291
C -0.530307
dtype: float64
In [29]: df.fillna(df.mean())
Out[29]:
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
Die Dokumentation von fillna
sagt, dass value
dies ein Skalar oder ein Diktat sein sollte, aber es scheint auch mit einem zu funktionieren Series
. Wenn Sie ein Diktat verabschieden möchten, können Sie verwenden df.mean().to_dict()
.
df.fillna(df.mean())
gibt den neuen Datenrahmen zurück, sodass Sie schreiben müssendf=df.fillna(df.mean())
, um ihn zu behalten.df=df.fillna(df.mean())
Ihnen könnte auchdf.fillna(df.mean(), inplace=True)
Versuchen:
quelle
Wenden Sie pro Spalte den Mittelwert dieser Spalten an und füllen Sie
quelle
quelle
Wenn Sie fehlende Werte mit dem Mittelwert unterstellen möchten und Spalte für Spalte gehen möchten, wird dies nur mit dem Mittelwert dieser Spalte unterstellt. Dies könnte etwas besser lesbar sein.
quelle
Verwenden Sie direkt
df.fillna(df.mean())
, um den gesamten Nullwert mit dem Mittelwert zu füllenWenn Sie den Nullwert mit dem Mittelwert dieser Spalte füllen möchten, können Sie diesen verwenden
Angenommen,
x=df['Item_Weight']
hierItem_Weight
ist der Spaltennamehier weisen wir zu (füllen Sie Nullwerte von x mit dem Mittelwert von x in x)
Wenn Sie den Nullwert mit einer Zeichenfolge füllen möchten, verwenden Sie
Hier
Outlet_size
ist der Spaltennamequelle
Eine andere Option neben den oben genannten ist:
Es ist weniger elegant als die vorherigen Antworten für den Mittelwert, aber es könnte kürzer sein, wenn Sie Nullen durch eine andere Spaltenfunktion ersetzen möchten.
quelle
Pandas: So ersetzen Sie NaN (
nan
) -Werte durch Durchschnitts-, Mittelwert- oder andere Statistiken einer SpalteAngenommen, Ihr DataFrame ist
df
und Sie haben eine Spalte aufgerufennr_items
. Das ist:df['nr_items']
Wenn Sie die Werte Ihrer Spalte durch den Mittelwert der Spalte ersetzen möchten :
NaN
df['nr_items']
Methode verwenden
.fillna()
:mean_value=df['nr_items'].mean()
df['nr_item_ave']=df['nr_items'].fillna(mean_value)
Ich habe eine neue
df
Spalte erstellt, die aufgerufen wirdnr_item_ave
, um die neue Spalte zu speichern, wobei dieNaN
Werte durch denmean
Wert der Spalte ersetzt werden.Sie sollten vorsichtig sein, wenn Sie das verwenden
mean
. Wenn Sie Ausreißer haben, ist es empfehlenswerter, die zu verwendenmedian
quelle
Verwenden der Vorverarbeitungsklasse der sklearn-Bibliothek
Hinweis: In der letzten Version
missing_values
ändern Sie den Parameterwertnp.nan
vonNaN
quelle