从数据框中的列表中获取最后一个值?

时间:2019-04-23 18:01:18

标签: python pandas dataframe

如果我有一个不对称的数据框列表,例如:

   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

最好的方法是什么?谢谢!

2 个答案:

答案 0 :(得分:4)

使用DataFrame.stackgroupbylast

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