2017-08-19 1 views
1

Je souhaite utiliser la fonction apply() dans la première colonne pour les cas particuliers de valeurs de la deuxième colonne.Pandas: utiliser une fonction d'application basée sur une autre condition de colonne

Supposons que j'ai un dataframe comme celui-ci

URL  text 
------- --------- 
URL1  
URL2  some text 

Je veux utiliser la fonction apply() sur la colonne URL lorsque text est vide (ou une autre condition). Je l'ai essayé

webdata['text'] = webdata.apply(lambda row: func(row['URL']) if row['text']== '' else row['text']) 

func() est ma fonction que je veux appeler. Mais j'ai cette erreur.

('text', u'occurred à clé index ')

Y at-il une erreur, ou est-il une meilleure façon de le faire?

Répondre

1

IIUC:

webdata.loc[webdata['text']=='', 'text'] = \ 
    webdata.loc[webdata['text']=='', 'URL'].apply(func)