2016-07-16 4 views
1

У меня есть панд dataframe, который выглядит примерно так:Итеративно Capture Значение Графы в одиночной DataFrame

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

У меня есть более 100 столбцов и тысячи строк. Я пытаюсь создать единый информационный кадр pandas из value_counts каждого из колонок. Так что я хочу что-то, что выглядит следующим образом:

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

Любые один знает простой способ, которым я могу итеративно CONCAT в value_counts от каждого из более чем 100 столбцов в наборе данных во время первоначального захвата имени столбцов в виде иерархический индекса ?

В конце концов, я хочу, чтобы иметь возможность слиться с другим dataframe другой группы, чтобы выглядеть следующим образом:

    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