Spec-Zone.ru › pandas 0.23

pandas.Series.truncate

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

Spec-Zone.ru

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