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


Python pyspark DataFrame.unstack用法及代码示例


本文简要介绍 pyspark.pandas.DataFrame.unstack 的用法。

用法:

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

旋转(必要的分层)索引标签。

返回具有新级别列标签的DataFrame,其最内层由旋转索引标签组成。

如果索引不是 MultiIndex,则输出将是一个系列。

注意

如果索引是 MultiIndex,则输出 DataFrame 可能非常宽,并且可能会导致严重的性能下降,因为 Spark 基于行进行分区。

返回

系列或DataFrame

例子

>>> df = ps.DataFrame({"A": {"0": "a", "1": "b", "2": "c"},
...                    "B": {"0": "1", "1": "3", "2": "5"},
...                    "C": {"0": "2", "1": "4", "2": "6"}},
...                   columns=["A", "B", "C"])
>>> df
   A  B  C
0  a  1  2
1  b  3  4
2  c  5  6
>>> df.unstack().sort_index()
A  0    a
   1    b
   2    c
B  0    1
   1    3
   2    5
C  0    2
   1    4
   2    6
dtype: object
>>> df.columns = pd.MultiIndex.from_tuples([('X', 'A'), ('X', 'B'), ('Y', 'C')])
>>> df.unstack().sort_index()
X  A  0    a
      1    b
      2    c
   B  0    1
      1    3
      2    5
Y  C  0    2
      1    4
      2    6
dtype: object

对于MultiIndex案例:

>>> df = ps.DataFrame({"A": ["a", "b", "c"],
...                    "B": [1, 3, 5],
...                    "C": [2, 4, 6]},
...                   columns=["A", "B", "C"])
>>> df = df.set_index('A', append=True)
>>> df  
     B  C
  A
0 a  1  2
1 b  3  4
2 c  5  6
>>> df.unstack().sort_index()  
     B              C
A    a    b    c    a    b    c
0  1.0  NaN  NaN  2.0  NaN  NaN
1  NaN  3.0  NaN  NaN  4.0  NaN
2  NaN  NaN  5.0  NaN  NaN  6.0

相关用法


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