如何折叠多列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]