我有一些数据:
Person Score1 Score2
A 1 4
B 2 5
C 3 6
最终目标是从原始矩阵中的所有可能值中将人员和分数的组合从最高到最低排序
我的想法是使用Python / Pandas创建一个数据集/变量,将其转换为:
Person Score
A-Score1 1
A-Score2 4
B-Score1 2
B-Score2 5
C-Score1 3
C-Score2 6
然后做一个但不知道如何做或者有更好的方法吗?
你可以用df.melt
做到这一点
您需要的数据:
>>> df
Person Score1 Score2
0 A 1 4
1 B 2 5
2 C 3 6
>>> pd.melt(df, id_vars=["Person"]).sort_values('Person')
Person variable value
0 A Score1 1
3 A Score2 4
1 B Score1 2
4 B Score2 5
2 C Score1 3
5 C Score2 6
要么
>>> df
Person Score1 Score2
0 A 1 4
1 B 2 5
2 C 3 6
>>>
>>>
>>> df.melt('Person')
Person variable value
0 A Score1 1
1 B Score1 2
2 C Score1 3
3 A Score2 4
4 B Score2 5
5 C Score2 6
>>> pd.melt(df, id_vars=['Person'], value_vars=['Score1', 'Score2'])
Person variable value
0 A Score1 1
1 B Score1 2
2 C Score1 3
3 A Score2 4
4 B Score2 5
5 C Score2 6