Pandas: Wie fülle ich Nullwerte mit dem Mittelwert eines Gruppenby?

Ich habe einen Datensatz mit fehlenden Daten, der so aussieht:

id    category     value
1     A            NaN
2     B            NaN
3     A            10.5
4     C            NaN
5     A            2.0
6     B            1.0

Ich muss die Nullen eingeben, um die Daten in einem Modell zu verwenden. Jedes Mal, wenn eine Kategorie zum ersten Mal auftritt, ist sie NULL. Die Art und Weise, die ich tun möchte, ist für Fälle wie categoryA undB, bei denen mehr als ein Wert die Nullen durch den Durchschnitt dieser Kategorie ersetzt. Und für die KategorieC mit nur einem Vorkommen füllen Sie einfach den Durchschnitt der restlichen Daten aus.

Ich weiß, dass ich dies einfach für Fälle wie @ tun kaC, um den Durchschnitt aller Zeilen zu erhalten, aber ich stecke fest und versuche, die kategorieweisen Mittelwerte für A und B zu tun und die Nullen zu ersetzen.

df['value'] = df['value'].fillna(df['value'].mean()) 

Ich brauche die endgültige df, um so zu sein

id    category     value
1     A            6.25
2     B            1.0
3     A            10.5
4     C            4.15
5     A            2.0
6     B            1.0

Antworten auf die Frage(4)

Ihre Antwort auf die Frage