按特定顺序对列名称进行排序

乔安娜

想象一下,对于pyspark数据框,我具有以下列名称:

在此处输入图片说明

pyspark自然是按0、1、2等的顺序对其进行排序。但是,我想要以下内容:0_0; 0_1; 1_0; 1_1; 2_0; 2_1或INSTEAD 0_0;1_0; 2_0; 3_0; 4_0; (...); 0_1; 1_1; 2_1; 3_1; 4_1(两种解决方案对我来说都可以)。

谁能帮我这个?

麦克

您可以根据下划线前后的数字对列名称进行排序:

df2 = df.select(
    'id',
    *sorted(
        df.columns[1:], key=lambda c: (int(c.split('_')[0]), int(c.split('_')[1]))
    )
)

要获得其他所需的输出,只需在上面的代码中0交换即可1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章