Замените пробел на np.nan
, затем выполните:
[sorted(list(set(i))) for i in df.ffill().values.T.tolist()]
В общем, просто выполните:
pd.DataFrame([[sorted(list(set(i))) for i in df.ffill().values.T.tolist()]],\
columns=df.columns)
field1 field2
0 [a, d, e] [b, c, f]
Или, чтобы сохранить первоначальный порядок списка,использование:
from collections import OrderedDict
pd.DataFrame([[list(OrderedDict.fromkeys(i)) for i in df.ffill().values.T.tolist()]],\
columns=df.columns)
field1 field2
0 ['a', 'd', 'e'] ['b', 'c', 'f']