Я пытаюсь объединить несколько столбцов (все числовые числа) в кадре данных в массив под одним столбцом данных. Предостережение: если объединяющие столбцы имеют NAN, то их не следует объединять.
Входной фрейм данных :
userid | p1 | p2 |p3 | p4 | p5
1 | NAN| NAN| 20| 30 | 40
1 | NAN| 30 | 60| 80 | 100
2 | NAN| NAN|NAN| NAN| 45
Я пробовал это решение, но оно не отбрасывает NAN:
df['combined'] = df[['p5','p4','p3','p2','p1']].apply(tuple,axis=1).apply(np.array)
Окончательный вывод датафрейм должен выглядеть следующим образом (также порядок конкатенации - p5, p4, p3, p2, p1), при этом исключая nan при конкатенации:
userid | p1 | p2 |p3 | p4 | p5 | combined
1 | NAN| NAN| 20| 30 | 40 | [40,30,20]
1 | NAN| 30 | 60| 80 | 100| [100,80,60,30]
2 | NAN| NAN|NAN| NAN| 45 | [45]
Так что любое решение для вышеприведенного вывода будет действительно оценено.