Spec-Zone.ru › pandas 1

pandas.Series.squeeze

Series.squeeze(axis=None)[source]

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

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

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

Параметры
axis:{0 или ‘index’, 1 или ‘columns’, None}, по умолчанию None

Конкретная ось для сжатия. По умолчанию сжимаются все оси длиной 1. Для Series этот параметр игнорируется и по умолчанию равен None.

Возвращает
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–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.squeeze.html

Spec-Zone.ru

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