pd.DataFrame([['A', 'first', 1.0, 1.0, np.NaN], [np.NaN, np.NaN, 2.0, np.
    NaN, 2.0], [np.NaN, np.NaN, np.NaN, 3.0, 3.0]], columns=['ID', 'Name',
    'val1', 'val2', 'val3'], index=[0, 1, 2])
Панды заставляют NaN располагаться внизу каждого столбца по каждому индексу