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