Mam za zadanie stworzyć regresję liniową na podstawie pewnych danych, w skład których wchodzi kolumna "Value", gdzie są podane wartości w milionach i tysiącach, wraz z walutą. SciKitLearn nie obsłuży tych danych, jeżeli nie zostaną one wyczyszczone. Tym samym napisałem funkcję, która w odpowiedni sposób usuwa to co bym chciał. Oto ona:
def f(x):
if "M" in list(x):
return float(x[1:-1]) * 1000000
elif "K" in list(x):
return float(x[1:-1]) * 1000
else:
return x[1:]
Dla przykładu, zmienia ona wartość: $32423K, na 32423000.0. Także tutaj idzie sprawnie.
Jednak jeżeli chcę teraz tę funkcję zastosować na całej kolumnie. tj około 10 000 wartości, to wpisując komendę:
dokument['Value'].apply(f(x))
Wyskakuje mi błąd o treści:
TypeError: 'DataFrame' object is not callable
Typ tych danych to:
type(dokument['Value'])
pandas.core.series.Series
Czy ktoś byłby w stanie powiedzieć mi w jaki sposób zastosować tę funkcje na ten dokument?