2015-11-17 292 views
3

目前分箱列的值,我持有的人口,這些年齡段的頻率的年齡一個數據幀,這樣的:大熊貓根據指數

 freq 
27 103 
28  43 
29  13 
... ... 
78  20 
79  13 

年齡是的索引數據幀。我想執行一些熊貓的魔法讓我得到一個數據框分檔如下:

  freq 
(20, 30] 308 
(30, 40] 111 
(40, 50] 85 
(50, 60] 58 
(60, 70] 63 
(70, 80] 101 

因此該指數是目前由年齡區間,而不是個人的年齡和頻率相應地相加。我怎樣才能做到這一點?

回答

6

使用cut可以使用groupby來裝入DataFrame的索引。例如:

>>> df = pd.DataFrame({'freq': [2, 3, 5, 7, 11, 13]}, 
         index=[22, 29, 30, 31,25, 42]) 

>>> df 
    freq 
22  2 
29  3 
30  5 
31  7 
25 11 
42 13 

然後:

>>> df.groupby(pd.cut(df.index, np.arange(20, 60, 10))).sum() 
      freq 
(20, 30] 21 
(30, 40]  7 
(40, 50] 13 

np.arange(20, 60, 10)定義了將要使用的頻段;您可以根據'freq'欄中的最大/最小值調整這些值。