3 Réponses :


1
votes
In [183]: df['shape-type'] = "middle"

In [184]: df.loc[(df['first-name'] == 'john') & (df['height-ft'] == 6), 'shape-type'] = "good"

In [185]: df.loc[df['height-ft'] == 4, 'shape-type'] = "bad"

In [186]: df
Out[186]:
  first-name  height-ft shape-type
0       john          6       good
1      peter          5     middle
2       john          4        bad
3       alex          6     middle

0 commentaires

1
votes

sans problème, vous pouvez le faire: xxx

avec np.where : xxx


6 commentaires

Merci beaucoup pour la réponse. Voulez-vous ajouter une autre réponse à l'aide de NP.Where?


Vérifier la réponse modifiée


Merci @nyc coder. J'ai écrit ce code mais cela ne fonctionne pas. Souhaitez-vous le corriger? Importer numpy comme np cond1 = df.first-name.eq ('john') & df.height-ft.eq (6) cond2 = df.height-ft.eq (4) df ['type-type'] = np .Sélectionnez ([Cond1, Cond2], [[«BON»], «Bad»], 'M Mainte') DF


Code corrigé: cond1 = df [«premier nom»]. EQ ('John') & df ['hauteur-ft']. EQ (6) cond2 = df ['hauteur-ft']. EQ ( 4) DF ['Type de forme'] = NP.Sélectionnez ([[Cond1, Cond2], [[«Bien»], 'Bad'], 'M Mainte') Imprimer (DF)


Est-ce que cela fonctionne? Si oui, vous pouvez marquer cela comme la réponse


Oui, merci beaucoup. J'apprécie ton aide.



0
votes

Vous pouvez également faire une fonction à l'aide d'Iterrows () qui ira détester à toutes les lignes de DF, puis vous pouvez appliquer une fonction.

import pandas as pd

df = pd.DataFrame({
    "first_name": ["john","peter","john","alex"],
    "height_ft": [6,5,4,6],
    "shape_type": ["null","null","null","null"]
})

print(df)

def define_shape_type(first_name, height_ft) :
    if first_name == 'john' and height_ft == 6 :
        return "good" 
    elif height_ft == 4 :
        return "bad" 
    else :
        return "middle"

for index, row in df.iterrows():
    df.set_value(index, "shape_type", define_shape_type(row.first_name, row.height_ft))

print(df)


0 commentaires