Je cette dataframe:groupe par une colonne et afficher la disponibilité des valeurs spécifiques d'une autre colonne
df1:
drug_id illness
lexapro.1 HD
lexapro.1 MS
lexapro.2 HDED
lexapro.2 MS
lexapro.2 MS
lexapro.3 CD
lexapro.3 Sweat
lexapro.4 HD
lexapro.5 WD
lexapro.5 FN
Je vais d'abord regrouper les données basées sur drug_id, et la recherche de disponibilité de HD, MS, et FN dans la colonne maladie. Puis remplissez la deuxième trame de données comme ceci:
df2:
drug_id HD MS FN
lexapro.1 1 1 0
lexapro.2 0 1 0
lexapro.3 0 0 0
lexapro.4 1 0 0
lexapro.5 0 0 1
Ceci est mon code pour le regroupement.
df1.groupby('drug_id', sort=False).isin('HD')
mais je ne sais pas comment je peux attribuer 1 à la F2['HD']
pour chaque drug_id, si le 'HD'
était disponible pour cette drug_id
dans df1
.
Merci.
alternative à l'option 3 'df.set_index ('drug_id'). Illness.str.get_dummies somme(). (Niveau = 0) [[ 'HD', 'MS', 'FN']]. ge (1) .astype (int) ' –
@COLDSPEED, merci. J'ai essayé les trois types de codes que vous avez écrits, mais ils réorganisent la drogue id_column. La taille de ma colonne de données est de 805 lignes et elle inclut d'autres noms de médicaments (Effexor, zoloft, ...). Y a-t-il un moyen de l'éviter? Merci encore. – Mary
@Mary aussi, fermons cette question, marquons cette réponse comme acceptée ~ – Wen