在python中使用pandas排序系列

时间:2016-03-22 16:29:20

标签: python sorting pandas

我从一个DataFrame中选择了一列,然后我得到了一个系列。我该如何对系列进行排序?我使用了Series.sort(),但它不起作用。

df = pd.DataFrame({'A': [5,0,3,8],
                    'B': ['B8', 'B9', 'B10', 'B11']})
df

    A   B
0   5   B8
1   0   B9
2   3   B10
3   8   B11

然后我选择了列'A'

df['A']

    A
 0  5
 1  0
 2  3
 3  8

选择“A”列后,我得到了一个系列,但是使用了Series.sort(),它不起作用。

df['A'].sort()

显示错误:

“ValueError:这个系列是其他一些数组的视图,要就地排序你必须创建一个副本”

所以我使用Series.copy()函数来复制系列,然后我对系列进行排序,但是没有结果。

df['A'].copy().sort()

但是没有结果返回。

我该如何解决问题?

3 个答案:

答案 0 :(得分:3)

  

但是没有结果返回。

这是因为排序到位,它会修改对象。试试这个

A = df['A'].copy()
A.sort()
print(A)

答案 1 :(得分:2)

其中一个适合你 -

df.sort('A',ascending=False,inplace=True)  #old version
df.sort_values('A',ascending=False,inplace=True) #new version

答案 2 :(得分:0)

由于sort()函数已弃用,因此必须使用sort_values(inplace=True)进行就地排序(source)。

所以代码应如下所示:

A = df['A'].copy()
A.sort_values(inplace=True)