2015-10-09 7 views
7

Ich habe eine Funktion mit mehreren Eingängen und möchte SFrame.apply verwenden, um eine neue Spalte zu erstellen. Ich kann keinen Weg finden, zwei Argumente in SFrame.apply zu übergeben.Wie kann ich `apply` mit einer Funktion verwenden, die mehrere Eingaben benötigt

Idealerweise würde es den Eintrag in der Spalte als erstes Argument nehmen, und ich würde ein zweites Argument übergeben. Intuitiv so etwas wie ...

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

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

Antwort

1

Versuchen Sie dies.

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

Angenommen, das erste Argument der Funktion f ist eine der Spalte.

Say argcolumn1 in sf, dann

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

funktionieren sollte

+0

dies nicht –

+0

funktioniert bitte f mit Funktionsnamen ersetzen wie wenn Sie Funktion mit dem Namen count_imp_words haben, dann werden Sie schreiben: Produkte [ 'awesome '] = products [' word_count ']. apply (lambda x: count_imp_words (x,' awesome ')) –