按星期几分钟。熊猫Python Matplotlib

时间:2016-07-13 16:57:27

标签: python pandas matplotlib

我有一周的DF系列日。

dayname
MONDAY  
MONDAY  
WEDNESDAY 
SATURDAY
SUNDAY

我想要做的是使用像df = df.groupby('dayname').count()这样的分组计数函数绘制我可以获得的计数。

               count
dayname
MONDAY          2
WEDNESDAY       1 
SATURDAY        1
SUNDAY          1

在情节中,我想显示一周中的所有日子,即使它们的值为0.类似于下面的情节,周六没有活动,但仍然有一个酒吧。我目前的情节只显示DF中的数据(令人震惊)。那么我是如何添加零值的?我查看了pd.cut用于分箱的功能,但它似乎只分配了可以标记的数字箱。也许我还没理解。

enter image description here

更新

每条评论的工作代码。

这是数据框

              dayname
startdate
2015-12-13  SUNDAY
2015-12-28  MONDAY
2015-12-14  MONDAY
2015-12-10  THURSDAY
2015-12-20  SUNDAY

df.info()的结果

Index: 30 entries, 2015-12-13 to 2015-12-09
Data columns (total 1 columns):
dayname    30 non-null object
dtypes: object(1)
df = df.dayname.value_counts()

代码结果

SUNDAY       6
MONDAY       5
WEDNESDAY    4
THURSDAY     4
FRIDAY       4
Name: dayname, dtype: int64

建议代码

DAYS = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY']
df = df.reindex(DAYS, fill_value=0)

代码结果

MONDAY       0
TUESDAY      0
WEDNESDAY    4
THURSDAY     0
FRIDAY       0
Name: dayname, dtype: int64

1 个答案:

答案 0 :(得分:2)

创建天数列表并将其用于reindex

DAYS = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY']

df.dayname.value_counts().reindex(DAYS, fill_value=0).plot.bar()

enter image description here