我有一个看起来像这样的电影数据框...
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
答案 0 :(得分:1)
movies['decade'].value_counts()
返回以十年为索引的序列,并按计数降序排列。要按十年排序,只需添加
movies['decade'].value_counts().sort_index()
或
movies['decade'].value_counts().sort_index(ascending=False)
应该可以解决问题。