2016-07-16 39 views
1

计数我有一个熊猫数据帧,看起来是这样的:迭代捕捉值单数据帧

id group gender age_grp status 
1 1  m  over21 active 
2 4  m  under21 active 
3 2  f  over21 inactive 

我行的100列和数千人。我正在尝试创建每个colums的value_counts的单个熊猫数据框。所以,我想要的东西,看起来像这样:

    group1 
gender m   100 
     f   89 
age  over21 98 
     under21 11 
status active 87 
     inactive 42 

任何一个知道一个简单的方法,我可以反复CONCAT从每个100多个列的原始数据集的value_counts同时捕捉的列的名称作为分级指数?

最后,我希望能够用不同组的其他数据帧合并看起来像这样:

    group1 group2 
gender m   100  75 
     f   89  92 
age  over21 98  71 
     under21 11  22 
status active 87  44 
     inactive 42  13 

谢谢!

回答

1

这应做到:

df.stack().groupby(level=1).value_counts() 

id  1   1 
     2   1 
     3   1 
group 1   1 
     2   1 
     4   1 
gender m   2 
     f   1 
age_grp over21  2 
     under21  1 
status active  2 
     inactive 1 
dtype: int64 
+0

辉煌!谢谢!!! – eljusticiero67