在数据框中对值进行排序

时间:2019-09-02 17:24:59

标签: python pandas numpy dataframe python-3.6

我一直在尝试对dataframe上的值进行排序,而这些值已经被我处理。

以下是我的dataframe

1981    1.78
1982    1.74
1983    1.61
1984    1.62
1985    1.61
1986    1.43
1987    1.62
1988    1.96
1989    1.75
1990    1.83
1991    1.73
1992    1.72
1993    1.74
1994    1.71
1995    1.67
1996    1.66
1997    1.61
1998    1.48
1999    1.47
2000     1.6
2001    1.41
2002    1.37
2003    1.27
2004    1.26
2005    1.26
2006    1.28
2007    1.29
2008    1.28
2009    1.22
2010    1.15
2011     1.2
2012    1.29
2013    1.19
2014    1.25
2015    1.24
2016     1.2
2017    1.16
2018    1.14

我一直在尝试按降序对dataframe进行排序,以使右边的最高值首先出现。但是,每当我尝试对其进行排序时,它只会基于年份(即左侧的值)进行排序。

dataframe.sort_values('1')

我尝试使用sort_values并将“ 1”表示为要排序的列。但是,这将返回ValueError: No axis named 1 for object type <class 'pandas.core.series.Series'>

2 个答案:

答案 0 :(得分:1)

从OP提到的错误来看,数据结构是一个Series,因此应该直接调用sort函数

s = s.sort_values(ascending=False)

引发错误是因为在pandas.Series.sort_values中,第一个参数是axis。

答案 1 :(得分:0)

sort_values()的参数应为列名:

df=df.sort_values("col2")
相关问题