Spec-Zone.ru › pandas 1

pandas.Series.truncate

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

DataFrame.loc

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

DataFrame.iloc

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

Примечания

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

© 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/1.5.0/reference/api/pandas.Series.truncate.html

Spec-Zone.ru

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