Python Pandas - 不要对y轴值排序条形图

时间:2015-07-20 17:46:42

标签: python

我是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年)?

2 个答案:

答案 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')

希望,这会有所帮助。