Начиная с Python, я столкнулся с проблемой, которая должна быть обычной, но не смог найти простого решения. У меня есть некоторые вымышленные данные анкеты, на которые я хотел бы получить содержательные описания. В частности, для каждого вопроса я хочу знать, сколько раз был дан конкретный ответ («Да» / «Может быть» / «Нет»).
Введите:
Question1 Question2 Question3
Answer1 Maybe Yes Yes
Answer2 No Maybe Yes
Answer3 Maybe Maybe No
Answer4 No Yes Maybe
Теперь я хотел бы получить хороший обзор того, сколько раз конкретный ответ был дан на вопрос. Предпочтительный вывод будет выглядеть примерно так:
(предпочтительно) Выход:
Yes Maybe No
Question1 0 2 2
Question2 2 2 0
Question3 2 1 1
Моя собственная идея заключалась в том, что решение должно быть в команде 'groupby'. До сих пор мне не удалось получить какой-либо значимый вывод, хотя:
df.groupby(['Question1']).sum()
Question2 Question3
Question1
Maybe YesMaybe YesNo
No MaybeYes YesMaybe
Я сгенерировал фиктивные данные с помощью:
# Generate data
data = np.array([['','Question1','Question2','Question3'],['Answer1',"Maybe","Yes","Yes"],['Answer2',"No","Maybe","Yes"],['Answer3',"Maybe","Maybe","No"],['Answer4',"No","Yes","Maybe"]])
# convert to pandas dataframe
df = pd.DataFrame(data=data[1:,1:],index=data[1:,0],columns=data[0,1:])
Я знаю, что это должен быть простой вызов, но любая помощь будет принята с благодарностью.