我有以下的數據幀:如何使用來自多列的值對熊貓數據框進行排序?
df = pandas.DataFrame([{'c1':3,'c2':10},{'c1':2, 'c2':30},{'c1':1,'c2':20},{'c1':2,'c2':15},{'c1':2,'c2':100}])
或者,在人類可讀的形式:
c1 c2
0 3 10
1 2 30
2 1 20
3 2 15
4 2 100
以下排序命令按預期工作:
df.sort(['c1','c2'], ascending=False)
輸出:
c1 c2
0 3 10
4 2 100
1 2 30
3 2 15
2 1 20
但下面的命令:
df.sort(['c1','c2'], ascending=[False,True])
結果
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
,這不是我所期望的。我期望第一列中的值從最大到最小排列,如果第一列中有相同的值,則按第二列中的升序值排序。
有誰知道爲什麼它不能按預期工作?
ADDED
這是複製粘貼:
>>> df.sort(['c1','c2'], ascending=[False,True])
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
您使用的是什麼版本的熊貓和numpy? –