當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。