【发布时间】:2019-10-15 14:29:25
【问题描述】:
我正在尝试将数据帧中的多列(都是数字)连接到数据帧单列下的数组中。需要注意的是,如果连接列具有 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]
因此,对于上述输出的任何解决方案都将不胜感激。
【问题讨论】:
标签: python arrays pandas dataframe