Spec-Zone.ru › pandas 0.24

pandas.DataFrame.squeeze

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

Spec-Zone.ru

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