Maison > développement back-end > Tutoriel Python > Comment créer une nouvelle colonne avec des valeurs sélectionnées en fonction d'une colonne existante ?

Comment créer une nouvelle colonne avec des valeurs sélectionnées en fonction d'une colonne existante ?

王林
Libérer: 2024-02-22 13:40:13
avant
1016 Les gens l'ont consulté

Comment créer une nouvelle colonne avec des valeurs sélectionnées en fonction dune colonne existante ?

Contenu des questions

Comment changer color 列添加到以下数据帧,以便 color='green' 如果 set == 'z',否则 color='red' ?

Type  Set
1     A    Z
2     B    Z           
3     B    X
4     C    Y
Copier après la connexion


Bonne réponse


Si vous n'avez que deux choix, utilisez np.where:

df['color'] = np.where(df['set']=='z', 'green', 'red')
Copier après la connexion

Par exemple,

import pandas as pd
import numpy as np

df = pd.dataframe({'type':list('abbc'), 'set':list('zzxy')})
df['color'] = np.where(df['set']=='z', 'green', 'red')
print(df)
Copier après la connexion

Sortie

set type  color
0   z    a  green
1   z    b  green
2   x    b    red
3   y    c    red
Copier après la connexion

Si vous avez plus de deux conditions, veuillez utiliser np.selectnp.select。例如,如果您希望 color

. Par exemple, si vous voulez que color soit
  • yellow(df['set'] == 'z') & (df['type'] == 'a')
  • blue(df['set'] == 'z') & (df['type'] == 'b')Sinon
  • purple(df['type'] == 'b')Sinon
  • blackSinon
  • ,

Alors utilisez

df = pd.dataframe({'type':list('abbc'), 'set':list('zzxy')})
conditions = [
    (df['set'] == 'z') & (df['type'] == 'a'),
    (df['set'] == 'z') & (df['type'] == 'b'),
    (df['type'] == 'b')]
choices = ['yellow', 'blue', 'purple']
df['color'] = np.select(conditions, choices, default='black')
print(df)
Copier après la connexion

Générer🎜
Set Type   color
0   Z    A  yellow
1   Z    B    blue
2   X    B  purple
3   Y    C   black
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal