Spec-Zone.ru › pandas 0.24

pandas.Panel.squeeze

Panel.squeeze(axis=None) [source]

Сжатие 1-мерных объектов осей до скаляров.

Ряды или DataFrames с одним элементом сжимаются до скаляра. DataFrames с одним столбцом или одной строкой сжимаются до Series. В противном случае объект не изменяется.

Этот метод наиболее полезен, когда вы не знаете, является ли ваш объект Series или DataFrame, но вы знаете, что у него всего один столбец. В этом случае вы можете безопасно вызвать squeeze , чтобы убедиться, что у вас есть Series.

Параметры:
axis : {0 or ‘index’, 1 or ‘columns’, None}, default None

Конкретная ось для сжатия. По умолчанию сжимаются все оси длины 1.

Новое в версии 0.20.0.

Возвращает:
DataFrame, Series или скаляр

Проекция после сжатия axis или всех осей.

См. также

Series.iloc
Индексирование на основе целочисленных позиций для выбора скаляров.
DataFrame.iloc
Индексирование на основе целочисленных позиций для выбора Series.
Series.to_frame
Обратное преобразование DataFrame.squeeze для DataFrame с одним столбцом.

Примеры

>>> primes = pd.Series([2, 3, 5, 7])

Срезы могут создать Series с одним значением:

>>> even_primes = primes[primes % 2 == 0]
>>> even_primes
0    2
dtype: int64
>>> even_primes.squeeze()
2

Сжатие объектов с более чем одним значением на каждой оси ничего не делает:

>>> odd_primes = primes[primes % 2 == 1]
>>> odd_primes
1    3
2    5
3    7
dtype: int64
>>> odd_primes.squeeze()
1    3
2    5
3    7
dtype: int64

Сжатие еще более эффективно при использовании с DataFrames.

>>> df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
>>> df
   a  b
0  1  2
1  3  4

Срез одного столбца создаст DataFrame со столбцами, имеющими только одно значение:

>>> df_a = df[['a']]
>>> df_a
   a
0  1
1  3

Таким образом, столбцы могут быть сжаты, что приводит к Series:

>>> df_a.squeeze('columns')
0    1
1    3
Name: a, dtype: int64

Срез одной строки из одного столбца создаст скалярный DataFrame:

>>> df_0a = df.loc[df.index < 1, ['a']]
>>> df_0a
   a
0  1

Сжатие строк дает один скалярный Series:

>>> df_0a.squeeze('rows')
a    1
Name: 0, dtype: int64

Сжатие всех осей напрямую спроецирует в скаляр:

>>> df_0a.squeeze()
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.24.2/reference/api/pandas.Panel.squeeze.html

Spec-Zone.ru

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