python - 按一周中的几天进行分箱。 Pandas Python Matplotlib

标签 python pandas matplotlib

我一周中有几天有 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 函数,但它似乎只分配可以标记的数字箱。可能是我没看懂。

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

最佳答案

创建日期列表并使用它来重新索引

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

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

enter image description here

关于python - 按一周中的几天进行分箱。 Pandas Python Matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38357632/

相关文章:

python - 如何让 VSCode 不缓存导入的方法?

python - 抛出名称错误 : name 'pathlib' is not defined with Python 3. 4

python - 如何在TensorFlow中实现2-D高斯滤波器(如scipy.ndimage.gaussian_filter)?

python - conda列出的Pytorch但无法导入

python - 同时检查多个分类列的值

python - Matplotlib 动画未在 PyCharm 中显示

python - 将图像注释添加到条形图中

Python Pandas read_csv 跳过行但保留标题

python - 使用多个 if-else 子句对 pandas 数据框进行矢量化以分割域

python - savefig 循环将以前的图添加到图中