我从一个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()
但是没有结果返回。
我该如何解决问题?
答案 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)