对熊猫系列中的值进行排序

时间:2019-08-27 10:24:27

标签: python pandas dataframe

我有一个看起来像这样的电影数据框...

title               decade
movie name 1        2000
movie name 2        1990
movie name 3        1990
movie name 4        2000
movie name 5        2010
movie name 6        1980
movie name 7        1980

我想以此方式绘制每十年的电影数量

freq = movies['decade'].value_counts()

#freq returns me following
2000        56
1980        41
1990        37
1970        21
2010        9

# as you can see the value_counts() method returns a series sorted by the frequencies
freq = movies['decade'].value_counts(sort=False)
# now the frequencies are not sorted, because I want to distribution to be in sequence of decade year
# and not its frequency so I do something like this...

movies = movies.sort_values(by='decade', ascending=True)
freq = movies['decade'].value_counts(sort=False)

现在应该将Series freq排序至数十年,但不能 虽然电影是分类的 有人可以告诉我我做错了吗?谢谢。

我正在寻找的预期输出是这样的...

1970        21
1980        41
1990        37
2000        56
2010        9

1 个答案:

答案 0 :(得分:1)

movies['decade'].value_counts()

返回以十年为索引的序列,并按计数降序排列。要按十年排序,只需添加

movies['decade'].value_counts().sort_index()

movies['decade'].value_counts().sort_index(ascending=False)

应该可以解决问题。