如何折叠多列pandas

我有这样的数据,并使用pandas/ Excel的/ python。

ABCD Bus Car Plane Car Boat Car Boat Car Plane 

我试图让我的数据是这样的:

 ABCD Bus Car Plane Car Boat Car Boat Car Plane 

值(string)的位置取决于单元格是否为空。

我已经看了df.max,但它似乎并没有迎合多个列以及如何折叠pandas数据框的其他build议

我不想连接string,只是把所有的东西都转移过来。

我看到一个使用“R”和融化的方法,但是如果可能的话,我想坚持使用python / pandas。

谢谢。

这个怎么样:

 print df.apply(lambda x: pd.Series(x[~x.isnull()].values), axis=1) 0 1 2 0 Bus Car NaN 1 Plane NaN NaN 2 Car NaN NaN 3 Boat Car NaN 4 Boat Car Plane 

你总是可以fillna()结果与空白。

笨拙,但工作:

 df.apply(lambda x: pd.DataFrame([[i for i in x if i], ['' for i in x]], columns=x.index).ix[0], axis=1) 

为了保存原始的形状和列,这部分pd.DataFrame([[i for i in x if i], ['' for i in x]], columns=x.index).ix[0]