2017-05-24 2 views
1

Ich möchte NaN basierend auf einem Mittelwert der Spalte Werte füllen. Beispiel:Fill Nan basierend auf der Gruppe

 Groups  Temp 

1  5   27 
2  5   23 
3  5   NaN (will be replaced by 25) 
4  1   NaN (will be replaced by the mean of the Temps that are in group 1) 

Irgendwelche Vorschläge? Vielen Dank !

Antwort

2

Verwenden groupby, transfrom und lamdba Funktion mit fillna und mean:

df = df.assign(Temp=df.groupby('Groups')['Temp'].transform(lambda x: x.fillna(x.mean()))) 
print(df) 

Ausgang:

Temp 
0 27.0 
1 23.0 
2 25.0 
3 NaN 
+0

Ich will nur meine Antwort löschen sein die gleiche sowieso :) – Vaishali

+0

Ich habe andere Spalten als die temp und gruppen, wie kann ich präzise nur in temp füllen? – hdatas

+0

Super danke !!! – hdatas

Verwandte Themen