代码之家  ›  专栏  ›  技术社区  ›  Mod_x

如何将特定列的行标题更改为行标题,并在pySpark中生成矩阵?

  •  0
  • Mod_x  · 技术社区  · 2 年前

    下面给出了我的数据帧示例。

    身份证件 标题一 价值 全部的
    1. A. 10 30
    1. B 5. 40
    2. A. 12 50
    2. B 5. 60
    3. A. 14 70
    3. B 10 80

    我想把它转换成一个矩阵,其中行对应于不同的id,列对应于不同的标题,矩阵的条目是总值。行应命名为1、2、3,列应命名为A、B。因此,一个3x2矩阵,以条目作为总值。我该怎么做?

    结果输出应如下所示:,

    A. B
    1. 30 40
    2. 50 60
    3. 70 80

    我试着删除列并单独考虑条目,但没有成功。

    结果输出应如下所示:,

    A. B
    1. 30 40
    2. 50 60
    3. 70 80
    1 回复  |  直到 2 年前
        1
  •  0
  •   过过招    2 年前

    这是一个典型的行到列问题,使用spark实现 pivot 作用

    df = df.groupBy('id').pivot('Header One').agg(F.sum('total'))
    df.show(truncate=False)