如何根据另一列值将一列分成多个?
Posted
技术标签:
【中文标题】如何根据另一列值将一列分成多个?【英文标题】: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 How to pivot Spark DataFrame?的可能重复 【参考方案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 如果此答案有帮助,请将其标记为已接受的解决方案。以上是关于如何根据另一列值将一列分成多个?的主要内容,如果未能解决你的问题,请参考以下文章