Spec-Zone.ru › pandas 0.23

pandas.Panel.truncate

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

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

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

Параметры:

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

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

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

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

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

Ось для усечения. По умолчанию усекается индекс (строки).

copy : булево, по умолчанию True,

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

Возвращаемое значение:

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

Усечённый Series или DataFrame.

См. также

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

Примечания

Если индекс, который усекается, содержит только значения дат, 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–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.23.4/generated/pandas.Panel.truncate.html

Spec-Zone.ru

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