2016-02-28 19 views
1

让我简化我的问题,以便于解释。我该如何转换排名表与熊猫?

我有以下格式的大熊猫据帧表:

a b c 
0 1 3 2 
1 3 1 2 
2 3 2 1 

的数字在列的每行目前行列。 例如,第一行的顺序是{a,c,b}。

如何将上述内容转换为以下内容?

1 2 3 
0 a c b 
1 c a b 
2 c b a 

我整天都在Google上搜索。但是直到现在我还找不到任何解决方案。

回答

2

看起来你只是一个映射值到另一个重命名列,例如:

>>> df = pd.DataFrame({'a':[1,3,3], 'b':[3,1,2], 'c':[2,2,1]}) 
>>> df = df.applymap(lambda x: df.columns[x-1]) 
>>> df.columns = [1,2,3] 
>>> df 
    1 2 3 
0 a c b 
1 c a b 
2 c b a 
+0

谢谢!有用! – user1913171