Alle,Coalesce (SQL) Funktionalität für Python Pandas
konnte ich eine Funktion namens "combine_first()" in der pandas documentation sowie stackoverflow finden. Das funktioniert nur für ein paar logische Beispiele. Ich war in der Lage zu erreichen, dass unten die Funktion "combine_first()" mehrfach kombiniert wurde (in diesem Fall 6). Kann jemand helfen, eine elegantere Lösung zu finden?
Das Ergebnis der erstellten Variablen "category_id" sollte den ersten nicht fehlenden Wert enthalten, der mit der letzten Variablen (category_id7) beginnt und auf den ersten aufsteigend ist. Wenn category_id (x) aufgefüllt ist, sollte category_id diesen Wert annehmen und die Verarbeitung für jede Zeile im Datenframe stoppen.
d={'category_id1':[32991,32991,32991,32991,32991],
'category_id2':[22,22,22,22,22],
'category_id3':[33058,51,121,120,32438],
'category_id4':[np.nan,np.nan,np.nan,np.nan,np.nan],
'category_id5':[np.nan,np.nan,np.nan,np.nan,np.nan],
'category_id6':[np.nan,np.nan,np.nan,np.nan,np.nan],
'category_id7':[np.nan,np.nan,np.nan,np.nan,np.nan]
}
df=pd.DataFrame(data=d)
df['category_id']=df.category_id7.combine_first(df.category_id6).combine_first(df.category_id5).combine_first(df.category_id4).combine_first(df.category_id3).combine_first(df.category_id2).combine_first(df.category_id1)
print(df)
Ich verstehe nicht die ganze Funktionalität, aber es funktioniert einwandfrei. Sehr geschätzt! – Kyle