2015-09-23 6 views
2

Я хотел бы получить значения гистограммы из DataFrame:Гистограмма значения от Панды DataFrame

%matplotlib inline 
import pandas as pd 
import numpy as np 

df=pd.DataFrame(60*np.random.sample((100, 4)), pd.date_range('1/1/2014',periods=100,freq='D'), ['A','B','C','D']) 

Принимая во внимание pd.cut() можно сделать только один столбец, как и в example:

bins=np.linspace(0,60,5) 
df.groupby(pd.cut(df.A,bins)).count() 

Можно ли получить целые значения гистограммы для всех столбцов в одном DataFrame? Нужный результат будет выглядеть следующим образом:

  A B C D  
(0, 15]  21 10 1 2 
(15, 30] 14 24 21 24 
(30, 45] 10 0 22 30 
(45, 60] 25 5 25 25 

ответ

2

Как об этой технике, по существу список comphrension и pd.concat()

np.random.seed(1)  
bins=np.linspace(0,60,5) 
df= pd.concat([df[x].groupby(pd.cut(df[x],bins)).count() for x in df.columns],axis=1) 
df.index.names = [None] 
print df 

который для меня производит:

  A B C D 

(0, 15] 26 20 31 23 
(15, 30] 23 23 20 18 
(30, 45] 24 32 24 29 
(45, 60] 27 25 25 30 
Смежные вопросы