Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python,使用熊猫对下行数据帧进行排序_Python_Sorting_Pandas - Fatal编程技术网

python,使用熊猫对下行数据帧进行排序

python,使用熊猫对下行数据帧进行排序,python,sorting,pandas,Python,Sorting,Pandas,我试图通过降序对数据帧进行排序。 我在升序参数中加了'False',但我的顺序仍然是升序 我的代码是: from pandas import DataFrame import pandas as pd d = {'one':[2,3,1,4,5], 'two':[5,4,3,2,1], 'letter':['a','a','b','b','c']} df = DataFrame(d) test = df.sort(['one'], ascending=[False])

我试图通过降序对数据帧进行排序。 我在升序参数中加了'False',但我的顺序仍然是升序

我的代码是:

from pandas import DataFrame
import pandas as pd

d = {'one':[2,3,1,4,5],
     'two':[5,4,3,2,1],
     'letter':['a','a','b','b','c']}

df = DataFrame(d)

test = df.sort(['one'], ascending=[False])
但结果是

  letter  one  two
2      b    1    3
0      a    2    5
1      a    3    4
3      b    4    2
4      c    5    1

编辑:这已经过时了,请参见@Merlin的答案

[False]
是一个非空列表,与
False
不同。你应该写:

test = df.sort('one', ascending=False)
新语法(任意一种):


对于熊猫0.17及以上,请使用:

test = df.sort_values('one', ascending=False)
由于“一”是pandas数据框中的一个系列,因此pandas不会接受列表形式的参数。

我认为您不应该在方括号中提供
False
值(ever),当列值不止一个时,也不应该提供列值,然后只作为列表提供!不像
['one']

test = df.sort_values(by='one', ascending = False)

实际上,您的代码在pandas版本0.14.1上提供了所需的结果,因此如果可能,您可能需要升级。由于此问题所指的语法自0.14.1以来一直运行良好(在那之前是一个相当明显的拼写错误),因此可能不应该成为问题。我严重怀疑这一点“因此熊猫不会接受列表形式的参数。”是真的。它接受熊猫0.19上的
升序=[False]
。你能详细说明一下吗?顺便说一句,因为键入“升序=False”很难,而且我经常使用它,
对值进行排序('one')[:-1]
如果您受到性能的影响,它将起作用。只需轻轻地指向下面的答案,即可使用最新的Pandas版本。@merlin,请看我的答案。因此,我将其放在了底部。请使用方括号,因为您可能需要对多个列进行排序。请看操作问题。您也可以对多个列执行此操作:test=df.sort\u values(['1','2',升序=[0,0])
test = df.sort_values(by='one', ascending = False)
from pandas import DataFrame
import pandas as pd

d = {'one':[2,3,1,4,5],
 'two':[5,4,3,2,1],
 'letter':['a','a','b','b','c']}

df = DataFrame(d)

test = df.sort_values(['one'], ascending=False)
test