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


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


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

用法:

DataFrame.melt(id_vars: Union[Any, Tuple[Any, …], List[Union[Any, Tuple[Any, …]]], None] = None, value_vars: Union[Any, Tuple[Any, …], List[Union[Any, Tuple[Any, …]]], None] = None, var_name: Union[str, List[str], None] = None, value_name: str = 'value') → pyspark.pandas.frame.DataFrame

将 DataFrame 从宽格式逆透视为长格式,可以选择保留标识符变量集。

此函数可用于将 DataFrame 转换为一种格式,其中一列或多列是标识符变量 ( id_vars ),而所有其他列(被视为测量变量 ( value_vars ))是行轴的 “unpivoted”,仅留下两个非标识符列:‘variable’ 和‘value’。

参数

frameDataFrame
id_vars元组、列表或 ndarray,可选

用作标识符变量的列。

value_vars元组、列表或 ndarray,可选

要取消透视的列。如果未指定,则使用所有未设置为 id_vars 的列。

var_name标量,默认 ‘variable’

用于‘variable’ 列的名称。如果没有,它使用frame.columns.name 或‘variable’。

value_name标量,默认 ‘value’

用于‘value’ 列的名称。

返回

DataFrame

未透视的 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
>>> ps.melt(df)
  variable value
0        A     a
1        B     1
2        C     2
3        A     b
4        B     3
5        C     4
6        A     c
7        B     5
8        C     6
>>> df.melt(id_vars='A')
   A variable  value
0  a        B      1
1  a        C      2
2  b        B      3
3  b        C      4
4  c        B      5
5  c        C      6
>>> df.melt(value_vars='A')
  variable value
0        A     a
1        A     b
2        A     c
>>> ps.melt(df, id_vars=['A', 'B'])
   A  B variable  value
0  a  1        C      2
1  b  3        C      4
2  c  5        C      6
>>> df.melt(id_vars=['A'], value_vars=['C'])
   A variable  value
0  a        C      2
1  b        C      4
2  c        C      6

‘variable’ 和 ‘value’ 列的名称可以自定义:

>>> ps.melt(df, id_vars=['A'], value_vars=['B'],
...         var_name='myVarname', value_name='myValname')
   A myVarname  myValname
0  a         B          1
1  b         B          3
2  c         B          5

相关用法


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