pandas.Panel.asof
-
Panel.asof(where, subset=None)[source] -
Возвращает последнюю строку(и) без каких-либо значений NaN перед
where.Берется последняя строка (для каждого элемента в
where, если список) без каких-либо NaN. В случаеDataFrame, последняя строка без NaN, учитывая только подмножество столбцов (если неNone)Введено в версии 0.19.0: Для DataFrame
Если нет подходящего значения, возвращается NaN для Series или Series из NaN значений для DataFrame
Параметры: -
where : date or array-like of dates -
Дата(ы) до которой(ых) возвращается последняя строка(и).
-
subset : str or array-like of str, default 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–2012, 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/0.24.2/reference/api/pandas.Panel.asof.html