我有一个有n列的数据框df0。只有其中一列包含字符串,所有其他列都为空或包含“”字符串。是否可以将数据框折叠成单列数据框,其中每行都有非空元素?df0:
A B C 1 Car 2 Car 3 Bike 4 Car 5 Train 6 Train
应给予:
ttygqcqt1#
也许是:
>>> 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)之类的函数来创建一个.
Series
DataFrame
df.max(axis=1).to_frame(1)
ovfsdjhp2#
如果它们是空字符串而不是NaN,则可以使用. sum:
In [11]: df.fillna('').sum(1) Out[11]: 1 Car 2 Car 3 Bike 4 Car 5 Train 6 Train dtype: object
xkrw2x1b3#
这也是可行的,假设总有一列包含非空字符串:
df.apply(lambda x: [y for y in x.values if y!=''][0],axis=1)
3条答案
按热度按时间ttygqcqt1#
也许是:
它是
Series
,而不是DataFrame
,但你可以用df.max(axis=1).to_frame(1)
之类的函数来创建一个.ovfsdjhp2#
如果它们是空字符串而不是NaN,则可以使用. sum:
xkrw2x1b3#
这也是可行的,假设总有一列包含非空字符串: