Spec-Zone.ru › pandas 2

pandas.Series.squeeze

Series.squeeze(axis=None)[source]

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

Объекты Series или DataFrame с единственным элементом сжимаются до скаляра. DataFrame с одним столбцом или одной строкой сжимаются до 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

Сжатие еще более эффективно при использовании с 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–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/2.2.2/reference/api/pandas.Series.squeeze.html

Spec-Zone.ru

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