5
mam pandy dataframe 'DF' z dwóch kolumnach 'A' i 'B', mam funkcję z dwoma argumentamipandy, stosuje się z argumentami, które są dataframe wpisy row
def myfunction(B, A):
# do something here to get the result
return result
i chciałbym aby go zastosować rząd po rzędzie df pomocą „Zastosuj” funkcję
df['C'] = df['B'].apply(myfunction, args=(df['A'],))
ale pojawia się błąd
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
co dzieje tutaj , wydaje się, że trwa to df ['A'] jako cała seria! nie tylko wpis wiersza z tej serii, jeśli jest to wymagane.
Dlaczego nie mogę użyć argumentu 'args' dla funkcji zastosowanie? –
sprawdź [to] (http://stackoverflow.com/a/12183507/2901002). – jezrael
@RunnerBean można przekazywać argumenty w porządku. 'apply' akceptuje' kwargs', dzięki czemu możesz przekazywać takie argumenty: 'df ['B']. apply (myfunction, A = df ['A'])" Ale w tym przypadku jest to zły pomysł, jak byś był przekazywanie całej serii do funkcji zastosowanej w każdym wierszu. – piRSquared