我有100列和200行。每个值均包含“First”,“Second”,“King”或“Queen”,并与其他随机字符串连接,并用_分隔。注意:所有这些都与其他值串联在一起。每行只有一个“第一”,但其他行可以有多个。

下面是一个示例:

python - 重新排列行值-LMLPHP

我想根据我的条件重新排列每一行的值:

  • “第一”必须始终在第一列中。
  • “第二”必须在“第一”之后
  • “King”必须在“Second”之后
  • “女王”必须紧随“King”之后

  • 所需的输出:

    我试图做一个for循环来迭代每一行,但是我不知道如何像我的要求那样切换值或替换。

    python - 重新排列行值-LMLPHP

    最佳答案

    尝试:

    l=['First','Second','King','Queen']
    d=dict(zip(l,range(len(l))))
    #{'First': 0, 'Second': 1, 'King': 2, 'Queen': 3}
    df=pd.DataFrame(np.sort(df.replace(d),axis=1),columns=df.columns,
                    index=df.index).replace({v:k for k,v in d.items()})
    print(df)
    
             A       B       C     ETC
    1    First  Second  Second  Second
    2    First  Second  Second    King
    3    First  Second    King   Queen
    ETC  First  Second  Second    King
    

    关于python - 重新排列行值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55889934/

    10-10 21:15