Maison >développement back-end >Tutoriel Python >Comment créer une nouvelle colonne de classification raciale dans les pandas basée sur plusieurs colonnes d'origine ethnique ?

Comment créer une nouvelle colonne de classification raciale dans les pandas basée sur plusieurs colonnes d'origine ethnique ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-20 02:11:09200parcourir

How to Create a New Race Classification Column in Pandas Based on Multiple Ethnicity Columns?

Création d'une nouvelle colonne basée sur les valeurs de plusieurs colonnes dans Pandas

Dans Pandas, il est possible de créer une nouvelle colonne basée sur le valeurs présentes dans plusieurs autres colonnes. Cette fonctionnalité est utile lors de l'application d'une logique complexe ou de fonctions personnalisées pour dériver des informations significatives à partir des données.

À titre d'exemple illustratif, considérons la tâche consistant à créer une nouvelle colonne intitulée « race_label » en fonction des valeurs de six colonnes d'origine ethnique. : ERI_Hispanic, ERI_AmerInd_AKNatv, ERI_Asian, ERI_Black_Afr.Amer, ERI_HI_PacIsl et ERI_White. L'exigence est de classer les individus en fonction de leur race en utilisant les critères suivants :

  1. Si la personne est considérée comme hispanique, elle est classée comme « hispanique ».
  2. Si la somme de tous les drapeaux d'origine ethnique non hispanique sont supérieurs à 1, ils sont classés comme « Deux ou plus ».
  3. Si la personne est comptée comme Indien d'Amérique/Alaska Natif, ils sont classés comme « A/I AK Native ».
  4. Si la personne est comptée comme asiatique, elle est classée comme « Asiatique ».
  5. Si la personne est comptée comme noire/ Afro-américains, ils sont classés comme « Noirs/AA ».
  6. Si la personne est comptée comme natif d'Hawaï/des îles du Pacifique, elle est classée comme « Haw/Pac. Isl."
  7. Si la personne est comptée comme Blanche, elle est classée comme "Blanche".

Solution

Pour y parvenir , une fonction personnalisée et la fonction Pandas apply() sont utilisées.

  1. Définir la personnalisation Fonction :

    def label_race(row):
       if row['eri_hispanic'] == 1:
          return 'Hispanic'
       if row['eri_afr_amer'] + row['eri_asian'] + row['eri_hawaiian'] + row['eri_nat_amer'] + row['eri_white'] > 1:
          return 'Two Or More'
       if row['eri_nat_amer'] == 1:
          return 'A/I AK Native'
       if row['eri_asian'] == 1:
          return 'Asian'
       if row['eri_afr_amer'] == 1:
          return 'Black/AA'
       if row['eri_hawaiian'] == 1:
          return 'Haw/Pac Isl.'
       if row['eri_white'] == 1:
          return 'White'
       return 'Other'
  2. Appliquer la fonction personnalisée à l'aide de Pandas :

    df['race_label'] = df.apply(label_race, axis=1)

Cela permettra créez une nouvelle colonne appelée "race_label" dans le dataframe Pandas, qui contient la classification appropriée pour chaque ligne en fonction de l'entrée critères.

En combinant la fonction personnalisée et la fonction Pandas apply(), nous pouvons créer une nouvelle colonne dérivée d'une logique complexe appliquée sur plusieurs colonnes, facilitant ainsi une analyse et une interprétation efficaces des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn