首页 > 解决方案 > 重新排列行值

问题描述

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

下面是一个例子:

在此处输入图像描述

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

期望的输出:

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

在此处输入图像描述

标签: pythonpandas

解决方案


尝试:

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

推荐阅读