【问题标题】:How to divide a column into multiple, based on another column value?如何根据另一列值将一列分成多个?
【发布时间】:2019-09-06 18:01:05
【问题描述】:

我需要根据 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

【问题讨论】:

  • 如果您不发布您的“当前”方式,有人怎么能提出“更好”的方式?你能展示一下你试过的代码吗?
  • 您想要 pandas 答案还是 sparksql 答案?请查看How to Ask

标签: pandas pyspark pyspark-sql pyspark-dataframes


【解决方案1】:

使用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

【讨论】:

  • @harvpan :我提到使用“过滤器”并形成多个数据帧并执行连接..
  • @rd90080 如果此答案有帮助,请将其标记为已接受的解决方案。
猜你喜欢
  • 1970-01-01
  • 2018-02-27
  • 2022-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-04
  • 2022-11-16
  • 2019-08-20
相关资源
最近更新 更多