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


Python pyspark DataFrame.stack用法及代碼示例

本文簡要介紹 pyspark.pandas.DataFrame.stack 的用法。

用法:

DataFrame.stack() → Union[DataFrame, Series]

將列中的規定級別堆疊到索引。

返回一個重塑的 DataFrame 或具有 multi-level 索引的係列,與當前 DataFrame 相比,具有一個或多個新的最內部級別。新的最內層是通過旋轉當前數據幀的列來創建的:

  • 如果列有一個級別,則輸出是一個係列;

  • 如果列有多個級別,則新的索引級別是從規定的級別獲取的,並且輸出是一個 DataFrame。

新的索引級別已排序。

返回

DataFrame 或係列

堆疊的 DataFrame 或係列。

注意

該函數的命名類似於將書籍集合從水平位置並排( DataFrame 的列)重新組織到彼此垂直堆疊(在 DataFrame 的索引中)。

例子

單層柱

>>> df_single_level_cols = ps.DataFrame([[0, 1], [2, 3]],
...                                     index=['cat', 'dog'],
...                                     columns=['weight', 'height'])

用單層列軸堆疊 DataFrame 會返回一個係列:

>>> df_single_level_cols
     weight  height
cat       0       1
dog       2       3
>>> df_single_level_cols.stack().sort_index()
cat  height    1
     weight    0
dog  height    3
     weight    2
dtype: int64

多級列:簡單案例

>>> multicol1 = pd.MultiIndex.from_tuples([('weight', 'kg'),
...                                        ('weight', 'pounds')])
>>> df_multi_level_cols1 = ps.DataFrame([[1, 2], [2, 4]],
...                                     index=['cat', 'dog'],
...                                     columns=multicol1)

使用 multi-level 列軸堆疊 DataFrame :

>>> df_multi_level_cols1  
    weight
        kg pounds
cat      1      2
dog      2      4
>>> df_multi_level_cols1.stack().sort_index()
            weight
cat kg           1
    pounds       2
dog kg           2
    pounds       4

缺失值

>>> multicol2 = pd.MultiIndex.from_tuples([('weight', 'kg'),
...                                        ('height', 'm')])
>>> df_multi_level_cols2 = ps.DataFrame([[1.0, 2.0], [3.0, 4.0]],
...                                     index=['cat', 'dog'],
...                                     columns=multicol2)

在使用multi-level 列堆疊數據幀時,通常會出現缺失值,因為堆疊的數據幀通常比原始數據幀具有更多的值。缺失值用 NaN 填充:

>>> df_multi_level_cols2
    weight height
        kg      m
cat    1.0    2.0
dog    3.0    4.0
>>> df_multi_level_cols2.stack().sort_index()  
        height  weight
cat kg     NaN     1.0
    m      2.0     NaN
dog kg     NaN     3.0
    m      4.0     NaN

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.DataFrame.stack。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。