使用Pandas对DataFrame进行降序排序
我想把一个数据表按从大到小的顺序排列。
我在设置升序的参数时填了'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
6 个回答
0
从 pandas 库中导入 DataFrame,并且导入 pandas 库,命名为 pd。
接下来,创建一个字典 d,里面有三组数据:'one' 这一组有数字 [2, 3, 1, 4, 5],'two' 这一组有数字 [5, 4, 3, 2, 1],还有 'letter' 这一组有字母 ['a', 'a', 'b', 'b', 'c']。
然后,用这个字典 d 创建一个数据框 df。
#接下来检查下面的语句
通过 'one' 这一列对数据进行分组,然后统计每组的数量,并按照 'one' 这一列的值从大到小排序。
4
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
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
25
对于pandas 0.17及以上版本,可以使用这个:
test = df.sort_values('one', ascending=False)
因为'one'在pandas数据框中是一个序列,所以pandas不接受以列表的形式传入的参数。
98
新的语法(可以是任意一种):
test = df.sort_values(['one'], ascending=[False])
test = df.sort_values(['one'], ascending=[0])
66
编辑:这个内容已经过时,请查看@Merlin的回答。
[False]
是一个非空的列表,它和False
是不一样的。你应该这样写:
test = df.sort('one', ascending=False)