2014-10-02 66 views
0

说我有一个DF定义为变量DF1:传递一个变量名到函数的参数(Python 3中,熊猫)

Words   Score 
    The man  10 
    A Plan   20 
    Panama   30 

并说我有一个函数:

def func(w, df): 
    pattern = re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE) 
if pattern.search(df): 
    return True 
else: 
    return False 

我如何将DF1的每一行,特别是列'Words'传递给函数中的参数?

编辑:Ubuntu的答案是什么,我通常会使用,但我需要自己在我的函数引用DF

+0

好的,编辑 - 但我怎样才能通过我的DF功能! – user3682157 2014-10-02 21:42:23

回答

1

你可以使用the Series.apply method

df1['Words'].apply(func) 

如果您希望通过更多的位置参数来func,使用args关键字参数:

df1['Words'].apply(func, args=(df,)) 

,或者通过df作为关键字参数:

df1['Words'].apply(func, df=df) 

以来,per the docs “[α] dditional关键字参数[给apply]将作为关键字传递给函数”。

+0

@DSM:你的回答比我的完整;我们应该交换删除状态吗? – unutbu 2014-10-02 21:53:47

+0

嗯,这让我有点在这里的方式,但不完全 - 我如何应用,如果我需要实际调用数据框的争论?编辑上面的 – user3682157 2014-10-02 22:08:25

+0

,所以如果函数是要查看是否在df1 ['Words']中找到了一个单词(即函数中的w参数) - 是否有办法做到这一点? – user3682157 2014-10-02 22:24:14