我是Python的初学者。我有一个日期系列和一些观察计数如下
Date Count
2003 10
2005 50
2015 12
2004 12
2003 15
2008 10
2004 05
我想绘制一个图表,用条形图(x轴为年,y轴为计数)查找年份计数。我使用以下代码
import pandas as pd
pd.value_counts(sfdf.Date_year).plot(kind='bar')
我得到的条形图会自动按计数排序。因此,我无法清楚地了解这些年来计数的分布情况。我们有什么方法可以停止对计数条形图上的数据进行排序,而是按x轴值排序(i,e年)?
答案 0 :(得分:2)
以下代码使用groupby()
将同一年的多个实例连接在一起,然后在groupby()对象上调用sum()
来对其进行求和。默认情况下,groupby()
将分组对象推送到数据框索引。我认为groupby()
会自动排序,但为了以防万一,sort(axis=0)
会对索引进行排序。剩下的就是情节。全部在一行:
df = pd.DataFrame([[2003,10],[2005,50],[2015,12],[2004,12],[2003,15],[2008,10],[2004,5]],columns=['Date','Count'])
df.groupby('Date').sum().sort(axis=0).plot(kind='bar')
答案 1 :(得分:0)
我知道这是一个老问题,但是如果有人还在寻找其他答案。
我通过添加.sort_index(axis=0)
所以,代替这个:
pd.value_counts(sfdf.Date_year).plot(kind='bar')
您可以这样写:
pd.value_counts(sfdf.Date_year).sort_index(axis=0).plot(kind='bar')
希望,这会有所帮助。