获取两个行都不是NaN的索引

时间:2013-08-05 19:17:03

标签: python pandas

使用DataFrame.first_valid_index()时,结果是其中一列不是NaN的索引。是否有一个函数返回第一个有效的索引,其中两列都不是NaN?

1 个答案:

答案 0 :(得分:1)

设置

In [67]: df = DataFrame(randn(10,2),index=pd.date_range('20000101',periods=10))

In [68]: df.iloc[0:3,0] = np.nan

In [69]: df.iloc[0:2,1] = np.nan

In [70]: df
Out[70]: 
                   0         1
2000-01-01       NaN       NaN
2000-01-02       NaN       NaN
2000-01-03       NaN -1.680185
2000-01-04  1.035485 -2.419576
2000-01-05  0.247941 -0.188783
2000-01-06 -0.328304 -1.579425
2000-01-07  1.209671  1.616452
2000-01-08 -1.050443  0.043022
2000-01-09 -1.342633 -1.188946
2000-01-10 -0.365231 -1.712874

方法1

In [71]: df.apply(lambda x: x.first_valid_index())
Out[71]: 
0   2000-01-04 00:00:00
1   2000-01-03 00:00:00
dtype: datetime64[ns]

In [72]: df.apply(lambda x: x.first_valid_index()).max()
Out[72]: Timestamp('2000-01-04 00:00:00', tz=None)

方法2

如果您想有选择地使用subset=list_of_columns,可以使用In [74]: df.dropna().first_valid_index() Out[74]: Timestamp('2000-01-04 00:00:00', tz=None) 在这里限制它(说2列)

{{1}}