Вы можете использовать понимание списка:
In [11]: [[int(i) for i in r if not np.isnan(i)] for _, r in df.iterrows()]
Out[11]: [[1, 2, 4], [2, 3], [4, 4, 2]]
In [12]: [[int(i) for i in r if not np.isnan(i)] for _, r in df.iteritems()]
Out[12]: [[1, 2, 4], [2, 3, 4], [4, 2]]