2016-07-16 63 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