如果我有一个不对称的数据框列表,例如:
1 2 3
0 a b c
1 d e NaN
2 f NaN NaN
3 g h NaN
或类似的系列
0 [a, b, c]
1 [d, e]
2 [f]
3 [g, h]
我需要每一行的最后一个值来创建另一个像这样的系列:
0 c
1 e
2 f
3 h
最好的方法是什么?谢谢!
答案 0 :(得分:4)
使用DataFrame.stack
,groupby
和last
:
df.stack().groupby(level=0).last()
0 c
1 e
2 f
3 h
dtype: object
答案 1 :(得分:4)
在提供的示例中,您可以使用fillna
在每行中传播最后一个好值,并在最后一列中添加文字
df.fillna(method='ffill', axis=1).iloc[:,2]
0 c
1 e
2 f
3 h