Ho un data frame che registra le risposte di 19717 persone che scelgono le lingue di programmazione attraverso domande a scelta multipla. La prima colonna è ovviamente il genere del rispondente mentre il resto sono le scelte che hanno scelto. E quindi se scelgo Python, la mia risposta verrà registrata nella colonna Python e non bash e viceversa.
ID Gender Python Bash R JavaScript C++
0 Male Python nan nan JavaScript nan
1 Female nan nan R JavaScript C++
2 Prefer not to say Python Bash nan nan nan
3 Male nan nan nan nan nan
Quello che voglio è una tabella che restituisce il numero di istanze di ciascuna categoria nei Genderrecord. Quindi se 5000 uomini codificati in Python e 3000 donne in JS, allora dovrei ottenere questo:
Gender Python Bash R JavaScript C++
Male 5000 1000 800 1500 1000
Female 4000 500 1500 3000 800
Prefer Not To Say 2000 ... ... ... 860
Ho provato alcune delle opzioni:
df.iloc[:, [*range(0, 13)]].stack().value_counts()
Male 16138
Python 12841
SQL 6532
R 4588
Female 3212
Java 2267
C++ 2256
Javascript 2174
Bash 2037
C 1672
MATLAB 1516
Other 1148
TypeScript 389
Prefer not to say 318
None 83
Prefer to self-describe 49
dtype: int64
E non è ciò che è richiesto come descritto sopra. Questo può essere fatto in panda?
Genderindice.