#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