2015-10-09 13 views
7

Mam funkcję, która ma wiele wejść i chciałbym użyć SFrame.apply do utworzenia nowej kolumny. Nie mogę znaleźć sposobu na przekazanie dwóch argumentów do SFrame.apply.Jak używać `apply` z funkcją, która ma wiele wejść

Idealnie byłoby, gdyby wpis w kolumnie był pierwszym argumentem, a ja przekazałbym drugi argument. Intuicyjnie coś takiego ...

def f(arg_1,arg_2): 
    return arg_1 + arg_2 

sf['new_col'] = sf.apply(f,arg_2) 

Odpowiedz

1

Spróbuj tego.

sf['new_col'] = sf.apply(lambda x : f(arg_1, arg_2)) 
12

Załóżmy, że pierwszym argumentem funkcji f jest jedna z kolumn.

Say argcolumn1 w SF, a następnie

sf['new_col'] = sf['argcolumn1'].apply(lambda x:f(x,arg_2)) 

powinien działać

+0

to nie działa –

+0

wymień f z nazwą funkcji jak jeśli masz funkcję o nazwie count_imp_words wtedy napisać: produkty [ 'niesamowite '] = produkty [' word_count ']. apply (lambda x: count_imp_words (x,' awesome ')) –

Powiązane problemy