我一周中有几天有 DF 系列。
dayname
MONDAY
MONDAY
WEDNESDAY
SATURDAY
SUNDAY
我想要做的是绘制它们的计数,我可以使用像这样的 groupby 计数函数来获得 df = df.groupby('dayname').count()
。
count
dayname
MONDAY 2
WEDNESDAY 1
SATURDAY 1
SUNDAY 1
在图中,我想显示一周中的所有天,即使它们的值为 0。与下面的图类似,周六没有事件,但仍然有一个栏。我当前的绘图仅显示 DF 中的数据(令人震惊)。那么我有什么想法如何添加零值吗?我查看了用于分箱的 pd.cut 函数,但它似乎只分配可以标记的数字箱。可能是我没看懂。
更新
根据评论工作代码。
这是数据框
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
最佳答案
创建日期列表并使用它来重新索引
DAYS = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY']
df.dayname.value_counts().reindex(DAYS, fill_value=0).plot.bar()
关于python - 按一周中的几天进行分箱。 Pandas Python Matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38357632/