Spec-Zone.ru › pandas 1

pandas.DataFrame.truncate

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

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

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

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

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

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

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

axis:{0 или ‘индекс’, 1 или ‘столбцы’}, необязательно

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

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

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

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

Усечённый ряд или 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.DataFrame.truncate.html

Spec-Zone.ru

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