2017-08-19 2 views
1

Ich möchte apply() Funktion in der ersten Spalte nur für bestimmte Fälle von Werten aus der zweiten Spalte verwenden.Pandas: Verwenden Sie die Funktion apply basierend auf einer anderen Spalte Bedingung

Angenommen, ich habe einen Datenrahmen wie diese

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

I apply() Funktion auf der URL Spalte verwenden möchten, wenn text leer ist (oder eine andere Bedingung). Ich habe diese versucht

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

func() ist meine Funktion, die ich anrufen möchten. Aber ich bekomme diesen Fehler.

('text', bei Indexschlüssel 'u'occurred)

Gibt es einen Fehler, oder gibt es eine bessere Art und Weise, es zu tun?

Antwort

1

IIUC:

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