2015-09-18 30 views
0

如何遍历数据框中的行并只检索最后一个非null列之前的第n列。我最初的想法是使用一种形式的iterrows来遍历每一行,但没有经常使用这个函数。所以,数据帧我有看起来像这样:Pandas在无效前检索最后一个[-kth]列的值

 one  two three four five 
a 1.1770 -0.8547 0.3497 1.3690 nan 
b 0.3200 -1.6833 0.7674 nan nan 
c 0.0053 -0.3656 -0.6696 nan nan 
d 0.6170 -0.4473  nan nan nan 
e -0.4072 -0.0763 0.0998 0.6189 nan 
f -0.4753 -0.7615 -1.5959 0.3822 0.6244 

而且我想如下(以N = -2,从结束)

six 
a 0.3497 
b -1.6833 
c -0.3656 
d 0.6170 
e 0.0998 
f -1.5959 

回答

2

你可以使用apply删除创建一个新的列空值并采取像这样的整数位置。

In [176]: df.apply(lambda x: x.dropna().iloc[-2], axis=1) 
Out[176]: 
a 0.3497 
b -1.6833 
c -0.3656 
d 0.6170 
e 0.0998 
f 0.3822 
dtype: float64 
相关问题