如何折叠Pandas Dataframe Columns和Concatenate Strings

时间:2014-03-18 21:54:35

标签: pandas dataframe paste collapse

我有一个包含n列的数据框df0。 只有一列包含字符串,所有其他列都为空或包含""字符串。

是否可以将数据框折叠到单个列数据框中,对于每一行,我得到非空元素?

DF0:

    A    B     C
1  Car
2  Car 
3       Bike
4  Car
5            Train
6            Train

应该给:

    1    
1  Car
2  Car 
3  Bike
4  Car
5  Train
6  Train

3 个答案:

答案 0 :(得分:6)

也许:

>>> df.max(axis=1)
1      Car
2      Car
3     Bike
4      Car
5    Train
6    Train
dtype: object

这是Series,而不是DataFrame,但您可以使用df.max(axis=1).to_frame(1)或其他内容制作一个。

答案 1 :(得分:4)

如果它们是空字符串而不是NaN,则可以使用.sum:

In [11]: df.fillna('').sum(1)
Out[11]: 
1      Car
2      Car
3     Bike
4      Car
5    Train
6    Train
dtype: object

答案 2 :(得分:1)

这也可行,假设总是有一个非空字符串的列:

 df.apply(lambda x: [y for y in x.values if y!=''][0],axis=1)