Given a numpy array (or pandas dataframe) like this:
import numpy as np a = np.array([ [1, 1, 1, 0.5, np.nan, np.nan, np.nan], [1, 1,
check if not nan then reverse order of columns and take argmax then subtract from number of columns
a.shape[1] - (~np.isnan(a))[:, ::-1].argmax(1) - 1 array([3, 2, 6, 3, 0, 3])