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