First non-null value per row from a list of Pandas columns

前端 未结 9 1248
难免孤独
难免孤独 2020-11-27 19:23

If I\'ve got a DataFrame in pandas which looks something like:

    A   B   C
0   1 NaN   2
1 NaN   3 NaN
2 NaN   4   5
3 NaN NaN NaN

How ca

9条回答
  •  夕颜
    夕颜 (楼主)
    2020-11-27 20:07

    df=pandas.DataFrame({'A':[1, numpy.nan, numpy.nan, numpy.nan], 'B':[numpy.nan, 3, 4, numpy.nan], 'C':[2, numpy.nan, 5, numpy.nan]})
    
    df
         A    B    C
    0  1.0  NaN  2.0
    1  NaN  3.0  NaN
    2  NaN  4.0  5.0
    3  NaN  NaN  NaN
    
    df.apply(lambda x: numpy.nan if all(x.isnull()) else x[x.first_valid_index()], axis=1).tolist()
    [1.0, 3.0, 4.0, nan]
    

提交回复
热议问题