Spec-Zone.ru › pandas 0.25

pandas.Series.squeeze

Series.squeeze(self, axis=None) [source]

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

Серии или 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.25.0/reference/api/pandas.Series.squeeze.html

Spec-Zone.ru

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