first non-null value per row from a list of pandas columns,df.stack().groupby(level=0).first().reindex(df.index)