You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何转置带有多个索引列的PySpark DataFrame?

实现长表转宽表的解决方案

给定的原始DataFrame:

IDCompany_IdvalueApprove or Reject
1A3412asdvalue-1Approve
2B2345tyuvalue-2Approve
3C9800bvdvalue-3Approve
2B2345tyuvalue-1Approve

可以通过pandas的pivot方法直接实现需求,步骤如下:

  1. 构造示例数据(已有DataFrame可跳过此步骤):
import pandas as pd

data = {
    'ID': ['1A', '2B', '3C', '2B'],
    'Company_Id': ['3412asd', '2345tyu', '9800bvd', '2345tyu'],
    'value': ['value-1', 'value-2', 'value-3', 'value-1'],
    'Approve or Reject': ['Approve', 'Approve', 'Approve', 'Approve']
}
df = pd.DataFrame(data)
  1. 使用pivot进行透视转换,指定索引、列和值:
pivot_df = df.pivot(index=['ID', 'Company_Id'], columns='value', values='Approve or Reject')
  1. 重置索引并将缺失值替换为'NULL':
pivot_df = pivot_df.reset_index().fillna('NULL')
  1. 移除列索引名称(可选,让结果格式更匹配需求):
pivot_df.columns.name = None

最终得到的结果如下:

IDCompany_Idvalue-1value-2value-3
1A3412asdApproveNULLNULL
2B2345tyuApproveApproveNULL
3C9800bvdNULLNULLApprove

内容的提问来源于stack exchange,提问作者Mikesama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:45:39