首页 > 解决方案 > 如何根据另一列值将一列分成多个?

问题描述

我需要根据 python/pyspark 中的另一列值将一列拆分为 4。我尝试根据代码过滤它并加入多个df。有没有更好的方法来做到这一点?

Code   score ID

AAA     12  ABCD
BBB     14  ABCD
CCC     16  ABCD
DDD     67  ABCD
AAA     89  XYZ
BBB     65  XYZ
CCC     19  XYZ
DDD     56  XYZ


ID          score_AAA   score_BBB   score_CCC   score_DDD

ABCD            12          14      16              67
XYZ             89          65      19              56

标签: pandaspysparkpyspark-sqlpyspark-dataframes

解决方案


使用pivot

df = df.pivot(index='ID', columns='Code')
df.columns = df.columns.get_level_values(0) + '_' + df.columns.get_level_values(1)

结果:

      score_AAA  score_BBB  score_CCC  score_DDD
ID                                              
ABCD         12         14         16         67
XYZ          89         65         19         56

推荐阅读