1

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

4

1 回答 1

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

方法一

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)

方法二

subset=list_of_columns如果您想在此处有选择地限制它(例如 2 列),您可以使用dropna

In [74]: df.dropna().first_valid_index()
Out[74]: Timestamp('2000-01-04 00:00:00', tz=None)
于 2013-08-05T19:31:14.937 回答