Горизонтальный шарнир панды

#python #pandas #pivot

Вопрос:

У меня есть таблица с диагнозами icd_code и пациентами subject_id , как показано на скриншоте ниже.

Скриншот

У одного пациента может быть несколько диагнозов. Я хотел бы расположить таблицу таким образом, чтобы subject_id она была индексом, и включить список всех диагнозов этого пациента по горизонтали в отдельные столбцы. Есть ли способ сделать это с пандами? Кроме того, как я могу подсчитать, сколько диагнозов у каждого пациента?

Спасибо и с наилучшими пожеланиями

Ответ №1:

Попробуйте с groupby и pivot :

 df["idx"] = df.groupby("subject_id").cumcount() 1 output = df.pivot("subject_id", "idx", "icd_code") output["Count"] = output.count(axis=1)  gt;gt;gt; output idx 1 2 3 4 5 Count subject_id  11442057 65971 64231 V270 64511 NaN 4 15734973 2825 V0251 V270 64891 66481 5