pandas.Series.asof
- Series.asof(where, subset=None)[source]
-
Возвращает последнюю строку(и) без значений NaN до where.
Берется последняя строка (для каждого элемента в where, если список) без значений NaN. В случае
DataFrame, последняя строка без NaN, учитывая только подмножество столбцов (если не None).Если подходящего значения нет, возвращается NaN для Series или серия значений NaN для DataFrame.
- Параметры:
-
- where:дата или массив дат
-
Дата(ы) до которой возвращаются последние строки.
- subset:строка или массив строк, по умолчанию None
-
Для DataFrame, если не None, использовать только эти столбцы для проверки значений NaN.
- Возвращает:
-
- скаляр, Series или DataFrame
-
Возвращаемое значение может быть:
скаляр : когда self является Series, а where скалярным
Series: когда self является Series, а where массивом, или когда self является DataFrame, а where скалярным
DataFrame : когда self является DataFrame, а where массивом
См. также
merge_asof-
Выполнить слияние asof. Аналогично левому объединению.
Примечания
Даты предполагаются отсортированными. Возникает ошибка, если это не так.
Примеры
Series и скалярное значение where.
>>> 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
Для последовательности where возвращается Series. Первое значение NaN, потому что первый элемент where до первого значения индекса.
>>> 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
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.Series.asof.html