使用DataFrame.first_valid_index()
时,结果是其中一列不是NaN的索引。是否有一个函数返回第一个有效的索引,其中两列都不是NaN?
答案 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}}