pandas.Series.asof#
- Series.asof(где, subset=None)[источник]#
Вернуть последнюю строку(и) без каких-либо NaN перед где.
Последняя строка (для каждого элемента в где, если список) без каких-либо NaN принимается. В случае
DataFrame, последняя строка без NaN, учитывая только подмножество столбцов (если не None)Если нет подходящего значения, возвращается NaN для Series или Series значений NaN для DataFrame
- Параметры:
- гдедата или массивоподобный объект дат
Дата(ы), до которой(ых) возвращаются последние строки.
- subsetstr или array-like из str, по умолчанию None
Для DataFrame, если не None, используйте только эти столбцы для проверки на NaN.
- Возвращает:
- скаляр, Series или DataFrame
Возвращаемое значение может быть:
скаляр: когда self является Series и где является скаляром
Series: когда self является Series и где является массивоподобным, или когда self является DataFrame и где является скаляром
DataFrame : когда self является DataFrame и где является массивоподобным
Смотрите также
merge_asofВыполнить asof-слияние. Похоже на левое соединение.
Примечания
Даты предполагаются отсортированными. Вызывает ошибку, если это не так.
Примеры
Series и скаляр где.
>>> s = pd.Series([1, 2, np.nan, 4], index=[10, 20, 30, 40]) >>> s 10 1.0 20 2.0 30 NaN 40 4.0 dtype: float64
>>> s.asof(20) 2.0
Для последовательности где, возвращается Series. Первое значение — NaN, потому что первый элемент где находится перед первым значением индекса.
>>> s.asof([5, 20]) 5 NaN 20 2.0 dtype: float64
Пропущенные значения не учитываются. Следующее является
2.0, а не NaN, даже несмотря на то, что NaN находится в позиции индекса для30.>>> s.asof(30) 2.0
Принимать во внимание все столбцы
>>> df = pd.DataFrame({'a': [10., 20., 30., 40., 50.], ... 'b': [None, None, None, None, 500]}, ... index=pd.DatetimeIndex(['2018-02-27 09:01:00', ... '2018-02-27 09:02:00', ... '2018-02-27 09:03:00', ... '2018-02-27 09:04:00', ... '2018-02-27 09:05:00'])) >>> df.asof(pd.DatetimeIndex(['2018-02-27 09:03:30', ... '2018-02-27 09:04:30'])) a b 2018-02-27 09:03:30 NaN NaN 2018-02-27 09:04:30 NaN NaN
Принять во внимание один столбец
>>> df.asof(pd.DatetimeIndex(['2018-02-27 09:03:30', ... '2018-02-27 09:04:30']), ... subset=['a']) a b 2018-02-27 09:03:30 30.0 NaN 2018-02-27 09:04:30 40.0 NaN