Using groupby
with pandas
, I can get a count and percentage from a spreadsheet that will tell me the racial breakdown of our school by "Grade" OR the "Livewith" (Single Parent) breakdown.
df.groupby('GradeEntering)['Race'].value_counts(normalize = False).
What I can't find out how to do is get it broken down by "GradeEntering" AND "RACE" AND "Liveswith"
I have a spreadsheet with hundreds of rows like below:
GradeEntering | Race | Liveswith |
---|---|---|
Kindergarten | W | Both Parents |
Kindergarten | B | Mother |
Kindergarten | W | Father |
First | W | Both Parents |
Kindergarten | W | Both Parents |
Kindergarten | B | Mother |
Kindergarten | W | Father |
First | W | Both Parents |
Desired output would be Number of "Kindergarten" who are "W" and live with "Both Parents", then "Kindergarten" who are "W" and live with "Mother", and so on. So I have both counts and percentages. This is important to us as we try to represent our community population within our small charter school.
CodePudding user response:
Use a list:
(df.groupby(['GradeEntering', 'Race', 'Liveswith'])['Race']
.value_counts(normalize=False)
)