当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark Series.squeeze用法及代码示例


本文简要介绍 pyspark.pandas.Series.squeeze 的用法。

用法:

Series.squeeze(axis: Union[int, str, None] = None) → Union[int, float, bool, str, bytes, decimal.Decimal, datetime.date, datetime.datetime, None, DataFrame, Series]

将一维轴对象挤压成标量。

具有单个元素的系列或DataFrames被压缩为标量。单列或单行的DataFrames被压缩为一个系列。否则该对象不变。

当您不知道您的对象是 Series 还是 DataFrame,但您确实知道它只有一列时,此方法最有用。在这种情况下,您可以安全地调用squeeze 以确保您有一个系列。

参数

axis{0 或‘index’,1 或‘columns’,无},默认无

要挤压的特定轴。默认情况下,所有长度为 1 的轴都被挤压。

返回

DataFrame、系列或标量

挤压 axis 或所有轴后的投影。

例子

>>> primes = ps.Series([2, 3, 5, 7])

切片可能会产生一个具有单个值的系列:

>>> 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 = ps.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

所以列可以被压缩,产生一个系列:

>>> df_a.squeeze('columns')
0    1
1    3
Name: a, dtype: int64

从单列中切出单行将生成一个标量 DataFrame:

>>> df_1a = df.loc[[1], ['a']]
>>> df_1a
   a
1  3

挤压行产生一个单一的标量系列:

>>> df_1a.squeeze('rows')
a    3
Name: 1, dtype: int64

挤压所有轴将直接投影成一个标量:

>>> df_1a.squeeze()
3

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.pandas.Series.squeeze。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。