Zwei Spalten in Pandas addieren und dabei nans beachten via lamdba-Funktion mit Bedigung

Ihr wollte in eurem Dataframe zwei Spalten addieren und dabei nans ignorieren? D.h. ihr wollt a und b addieren, sofern a und b nicht None oder null sind und a, wenn a nicht None oder null aber b None oder null ist und sonst b in die neue Spalte schreiben?

Das geht so:

add_if_notna = lambda a, b: a+b if ~np.isnan(a) and ~np.isnan(b) else a if ~np.isnan(a) else b
df['new_col'] = df['col1'].combine(df['col2'],add_if_notna)

Wenn ihr alternativ die Spalten nur addieren wollt, wenn beide Werte ungleich null / None sind, dann geht das so:

add_if_notna = lambda a, b: a+b if ~np.isnan(a) and ~np.isnan(b) else None
df['new_col'] = df['col1'].combine(df['col2'],add_if_notna)

 

Leave a Reply

Your email address will not be published. Required fields are marked *