Сопоставление из другого фрейма данных

#python #pandas #dataframe

#питон #панды #фрейм данных

Вопрос:

У меня есть набор данных пациентов, например:

введите описание изображения здесь

и набор данных о заболеваниях каждого пациента (по коду МКБ):

введите описание изображения здесь

Как я могу пометить каждого пациента, если у него в анамнезе был определенный код МКБ, желаемый результат:

введите описание изображения здесь

В настоящее время я делаю это с помощью итерации, но это занимает слишком много времени….

Ответ №1:

Если нужны индикаторы — это означает 0, 1 , что используются только значения get_dummies :

 df1 = df1.join(pd.get_dummies(df2.set_index('patient_id')['ICD']).max(level=0), on='patient_id')
 

Если необходимо ICD использовать crosstab :

 df2 = df1.join(pd.crosstab(df['patient_id'], df['ICD']), on='patient_id')
 

Разница в том, что если дублируется парами patient_id , ICD .

Комментарии:

1. Большое спасибо!!! Как бы вы изменили код с помощью get_dummies, если ‘ICD’ является строкой, а не числовым?

2. @gtomer — он должен работать одинаково, как для строк, так и для чисел.

3. Для строки я получил следующую ошибку: ‘> =’ не поддерживается между экземплярами ‘str’ и ‘float’

4. @gtomer — там было плохо ) , нужно ).max(level=0)

5. Действительно. Я очень благодарен!!