尝试创建每月前10个问题的堆积条形图

2024-10-03 17:15:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个堆叠的序列,如下所示(日期仅表示为一个月整数):

date  issues        size                        
1     issue1        1
      issue2        2
      issue3        1
      issue4        6
      issue5        1
...
8     issue1        1
      issue2        2
      issue3        1
      issue4        6
      issue5        1

我可以创建堆叠的条形图,只要用图形

series.unstack().fillna(0)

但我想把发行数量限制在每个日期按大小排列的前10个,因为目前有100多个。这是我想不通的部分。感谢您的帮助。你知道吗

编辑:

为了更清楚,这里是我最初的数据帧的样子。你知道吗

          date  issues
0            1  issue1 
1            1  issue2 
2            1  issue3 
3            1  issue1
4            1  issue3 
5            2  issue1 
6            2  issue2 
7            2  issue3
...

Tags: 图形sizedate序列整数seriesissues条形图
1条回答
网友
1楼 · 发布于 2024-10-03 17:15:36

您可以只返回大小为applying to each groupasort然后head的顶级对象。
这里我们只看前两个:

In [11]: top2_by_date = df.groupby('date').apply(lambda x:  x.sort('size', ascending=False).head(2))

In [12]: top2_by_date
Out[12]: 
        date  issues  size
date                      
1    3     1  issue4     6
     1     1  issue2     2
8    8     8  issue4     6
     6     8  issue2     2

我们在索引(^{} doesn't stop thisfor now中有日期。

In [13]: top2_by_date.index =  top2_by_date.index.droplevel(0)

In [14]: top2_by_date
Out[14]: 
   date  issues  size
3     1  issue4     6
1     1  issue2     2
8     8  issue4     6
6     8  issue2     2

使用^{}的原始数据(不带size列,可以一次完成):

In [21]: df.groupby('date').apply(lambda x: x['issues'].value_counts()[:2])
Out[21]: 
date        
1     issue3    2
      issue1    2
2     issue2    1
      issue3    1
dtype: int64

注意:如果有平局,这将任意选取。

相关问题 更多 >