2017-08-19 121 views
1

我想仅在第一列使用apply()函数,仅用于第二列值的特定情况。熊猫:使用基于另一列条件的应用函数

假设我有这样的

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

我想用apply()功能上URL列时text是空白的(或其他条件)一个数据帧。我已经试过这

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

func()是我的功能我想打电话。但是我得到这个错误。

( '文',在索引键'u'occurred)

有什么错误,或者有更好的方式来做到这一点?

回答

1

IIUC:

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