Spec-Zone.ru › pandas 2

pandas.Series.truncate

Series.truncate(before=None, after=None, axis=None, copy=None)[source]

Усечение Series или DataFrame до и после некоторого значения индекса.

Это полезное сокращение для булевой индексации на основе значений индекса выше или ниже определенных пороговых значений.

Параметры:
before:дата, строка, целое число

Усечение всех строк до этого значения индекса.

after:дата, строка, целое число

Усечение всех строк после этого значения индекса.

axis:{0 или ‘index’, 1 или ‘columns’}, необязательно

Ось для усечения. По умолчанию усекается индекс (строки). Для Series этот параметр не используется и по умолчанию равен 0.

copy:bool, по умолчанию True,

Возвращает копию усечённого фрагмента.

Примечание

Ключевое слово copy изменит поведение в pandas 3.0. Copy-on-Write будет включено по умолчанию, что означает, что все методы с ключевым словом copy будут использовать механизм ленивой копии, чтобы отложить копирование и игнорировать ключевое слово copy. Ключевое слово copy будет удалено в будущей версии pandas.

Вы можете уже получить будущее поведение и улучшения, включив копирование при записи pd.options.mode.copy_on_write = True

Возвращает:
тип вызываемого объекта

Усечённая Series или DataFrame.

См. также

DataFrame.loc

Выбор подмножества DataFrame по метке.

DataFrame.iloc

Выбор подмножества DataFrame по позиции.

Примечания

Если индекс, подлежащий усечению, содержит только значения datetime, before и after можно указать в виде строк вместо Timestamp.

Примеры

>>> df = pd.DataFrame({'A': ['a', 'b', 'c', 'd', 'e'],
...                    'B': ['f', 'g', 'h', 'i', 'j'],
...                    'C': ['k', 'l', 'm', 'n', 'o']},
...                   index=[1, 2, 3, 4, 5])
>>> df
   A  B  C
1  a  f  k
2  b  g  l
3  c  h  m
4  d  i  n
5  e  j  o
>>> df.truncate(before=2, after=4)
   A  B  C
2  b  g  l
3  c  h  m
4  d  i  n

Столбцы DataFrame можно усечь.

>>> df.truncate(before="A", after="B", axis="columns")
   A  B
1  a  f
2  b  g
3  c  h
4  d  i
5  e  j

Для Series можно усечь только строки.

>>> df['A'].truncate(before=2, after=4)
2    b
3    c
4    d
Name: A, dtype: object

Значения индекса в truncate могут быть датами или строками дат.

>>> dates = pd.date_range('2016-01-01', '2016-02-01', freq='s')
>>> df = pd.DataFrame(index=dates, data={'A': 1})
>>> df.tail()
                     A
2016-01-31 23:59:56  1
2016-01-31 23:59:57  1
2016-01-31 23:59:58  1
2016-01-31 23:59:59  1
2016-02-01 00:00:00  1
>>> df.truncate(before=pd.Timestamp('2016-01-05'),
...             after=pd.Timestamp('2016-01-10')).tail()
                     A
2016-01-09 23:59:56  1
2016-01-09 23:59:57  1
2016-01-09 23:59:58  1
2016-01-09 23:59:59  1
2016-01-10 00:00:00  1

Поскольку индекс — это DatetimeIndex, содержащий только даты, мы можем указать before и after в виде строк. Они будут приведены к Timestamp перед усечением.

>>> df.truncate('2016-01-05', '2016-01-10').tail()
                     A
2016-01-09 23:59:56  1
2016-01-09 23:59:57  1
2016-01-09 23:59:58  1
2016-01-09 23:59:59  1
2016-01-10 00:00:00  1

Обратите внимание, что truncate предполагает значение 0 для любого необъявленного компонента времени (полночь). Это отличается от частичного строкового среза, который возвращает любые частично соответствующие даты.

>>> df.loc['2016-01-05':'2016-01-10', :].tail()
                     A
2016-01-10 23:59:55  1
2016-01-10 23:59:56  1
2016-01-10 23:59:57  1
2016-01-10 23:59:58  1
2016-01-10 23:59:59  1

© 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.truncate.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API