У мене є кадр даних, який записує відповіді виборців мов програмування 19717 року через запитання з численним вибором. Перша колонка - це, звичайно, стать респондента, а решта - вибір. Отже, якщо я виберу Python, то моя відповідь буде записана в колонку Python, а не bash, і навпаки.
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
Що я хочу - це таблиця, яка повертає кількість примірників кожної категорії під Gender
записами. Отже, якщо 5000 чоловіків закодовані в Python і 3000 жінок в JS, то я повинен отримати це:
Gender Python Bash R JavaScript C++
Male 5000 1000 800 1500 1000
Female 4000 500 1500 3000 800
Prefer Not To Say 2000 ... ... ... 860
Я спробував кілька варіантів:
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
І це не те, що потрібно, як описано вище. Чи можна це зробити в пандах?
Gender
індекс.