Spec-Zone.ru › pandas 2

pandas.DataFrame.squeeze

DataFrame.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/2.2.2/reference/api/pandas.DataFrame.squeeze.html

Spec-Zone.ru

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