我有这个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
的先前汇总数据中获取直方图/频率。因此,例如,预期输出应该是这些频率:
我已阅读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。
如何从分组数据中获取给定列的频率?
答案 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