无法从大熊猫分组数据中获取直方图

时间:2017-12-27 21:25:36

标签: python pandas histogram pandas-groupby frequency-distribution

我有这个DF。

f = { 'Router_name':['count'] }
a = a.groupby(['Week_end']).agg(f)

产生以下数据..

         Router_name
               count
Week_end            
29                 3
30                10
31                 6
32                 4
33                 9
34                 2
35                 5
36                10
37                 8
38                 6
40                10
41                 2
42                 8
43                 1
44                 3
45                 2
46                 8
47                 6
49                12
50                 5
51                10
52                 5
53                11

我试图从Router_name的先前汇总数据中获取直方图/频率。因此,例如,预期输出应该是这些频率:

enter image description here

我已阅读here执行b = a.hist(by=a['Router_name'])即可。但是,在尝试时,我收到以下错误:

Traceback (most recent call last):
  File "get_report_v1.5_devel.py", line 465, in <module>
    b = a.hist(by=a['Router_name'])
    raise ValueError("Grouper for '%s' not 1-dimensional" % t)
ValueError: Grouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensional

我也试过这个:a.Router_name.hist()。但我得到了相同的DataFrame。

如何从分组数据中获取给定列的频率?

1 个答案:

答案 0 :(得分:1)

看起来好像是使用agg

创建多索引
a.hist(by=a[('Router_name','count')])

a[('Router_name','count')].value_counts()
Out[1678]: 
10    4
8     3
6     3
5     3
2     3
3     2
12    1
11    1
9     1
4     1
1     1
Name: (Router_name, sum), dtype: int64