TLDR : если вы запрашиваете способ сопоставить данное значение индекса (в данном случае DatetimeIndex
) с его целочисленным эквивалентом, вы запрашиваете get_loc
, если вы просто хотите найти целочисленный индекс из Серии, используйте argmax
с базовым массивом numpy
.
Настройка
np.random.seed(3483203)
df = pd.DataFrame(
np.random.choice([0, np.nan], 5),
index=pd.date_range(start='2018-01-01', freq='1D', periods=5)
)
0
2018-01-01 NaN
2018-01-02 NaN
2018-01-03 0.0
2018-01-04 NaN
2018-01-05 NaN
Используйте здесь pandas.Index.get_loc
, который является общей функцией для возврата целочисленного индекса для данной метки:
>>> idx = df[0].first_valid_index()
>>> idx
Timestamp('2018-01-03 00:00:00', freq='D')
>>> df.index.get_loc(idx)
2
Если вы вообще не хотите находить индекс datetime
, вы можете использовать argmax
в базовом массиве numpy
:
>>> np.argmax(~np.isnan(df[0].values))
2