Możesz po prostu użyć DataFrame.fillna
do bezpośredniego wypełnienia nan
:
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
Dokumentacja fillna
mówi, że value
powinno to być skalar lub dykt, jednak wydaje się, że działa również z a Series
. Jeśli chcesz przekazać dyktando, możesz użyć df.mean().to_dict()
.
df.fillna(df.mean())
zwróci nową ramkę danych, więc będziesz musiał napisać,df=df.fillna(df.mean())
aby ją zachować.df=df.fillna(df.mean())
ciebie też możesz użyćdf.fillna(df.mean(), inplace=True)
Próbować:
źródło
Zastosuj dla każdej kolumny średnią z tych kolumn i wypełnij
źródło
źródło
Jeśli chcesz przypisać brakujące wartości średnią i chcesz jechać kolumna po kolumnie, to będzie to podstawiać tylko średnią z tej kolumny. To może być trochę bardziej czytelne.
źródło
Bezpośrednio użyj,
df.fillna(df.mean())
aby wypełnić wszystkie wartości null średniąJeśli chcesz wypełnić wartość null średnią z tej kolumny, możesz tego użyć
załóżmy
x=df['Item_Weight']
, że tutajItem_Weight
jest nazwa kolumnytutaj przypisujemy (wypełnij puste wartości x ze średnią x do x)
Jeśli chcesz wypełnić wartość null jakimś ciągiem znaków, użyj
tutaj
Outlet_size
jest nazwa kolumnyźródło
Inną opcją poza powyższymi jest:
Jest mniej elegancki niż poprzednie odpowiedzi dla średniej, ale może być krótszy, jeśli chcesz zastąpić wartości null inną funkcją kolumnową.
źródło
Pandy: Jak zamienić
nan
wartości NaN ( ) na średnią (średnią), medianę lub inne statystyki z jednej kolumnyPowiedz, że Twoja ramka DataFrame jest
df
i masz jedną kolumnę o nazwienr_items
. To jest:df['nr_items']
Jeśli chcesz zastąpić te
NaN
wartości kolumniedf['nr_items']
ze średnią w kolumnie :Użyj metody
.fillna()
:mean_value=df['nr_items'].mean()
df['nr_item_ave']=df['nr_items'].fillna(mean_value)
Utworzyłem nową
df
kolumnę o nazwienr_item_ave
do przechowywania nowej kolumny zNaN
wartościami zastąpionymi przezmean
wartość kolumny.Należy zachować ostrożność podczas korzystania z
mean
. Jeśli masz wartości odstające, bardziej zalecane jest użycie rozszerzeniamedian
źródło
za pomocą klasy przetwarzania wstępnego biblioteki sklearn
Uwaga: W najnowszej wersji
missing_values
wartość parametru zmienia się nanp.nan
fromNaN
źródło