2014-10-02 4 views
0

Say У меня есть 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, в частности столбцы «Слова», в аргумент внутри функции?

EDIT: ответ Ubuntu является то, что я обычно использую, но мне нужно себя ссылки на DF в моей функции

+0

Хорошо, отредактировано - но как я могу передать свой DF функции! – user3682157

ответ

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, "[а] аргументы их лни тельных ключевых слов [в apply] будут принят в качестве ключевых слов функции".

+0

@ DSM: Ваш ответ более полный, чем мой; мы будем менять состояния удаления? – unutbu

+0

hmmm, это дает мне вид пути здесь, но не совсем - как я могу применить это, если мне нужно на самом деле вызвать ФАЙЛ в рамке аргумента? Отредактированный OP выше – user3682157

+0

, поэтому, если функция должна была увидеть, было ли найдено слово (т. Е. Аргумент w в функции) в df1 ['Words'] - есть ли способ сделать это? – user3682157

Смежные вопросы