pandas.Series.truncate#

Series.усечение(до=None, после=None, ось=None, copy=None)[источник]#

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

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

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

Обрезать все строки до этого значения индекса.

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

Обрезать все строки после этого значения индекса.

ось{0 или ‘index’, 1 или ‘columns’}, опционально

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

copybool, по умолчанию True,

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

Примечание

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

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

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

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

Смотрите также

DataFrame.loc

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

DataFrame.iloc

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

Примечания

Если индекс, который обрезается, содержит только значения даты и времени, до и после может быть указано в виде строк вместо Timestamps.

Примеры

>>> 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, содержащим только даты, мы можем указать до и после в виде строк. Они будут приведены к Timestamps перед усечением.

>>> 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