Spec-Zone.ru › pandas 0.24

pandas.Series.squeeze

Series.squeeze(axis=None) [source]

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

Series или 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

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

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

Spec-Zone.ru

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