Python, PANDAS: Jak wywoływać funkcję apply() dla każdego wiersza DataFrame

21-Gru-2019

Kiedy robisz rzeczy standardowe, korzystasz sobie ze standardowych metod, ale kiedy przychodzi zmierzyć się z niestandardowym problemem, to trzeba sięgnąć po funkcję apply.

Tutaj mamy dosyć nietypowy DataFrame. Dla każdego wiersza DataFrame trzeba wykonać jakąś niestandardową czynność…

Dajmy na to,  że w zależności od zawartości kolumny „rola” trzeba zwrócić taki  albo inny DataFrame – ogólnie wykonać jakąś złożoną operację. W tym celu zdefiunujemy funkcję. Pisząc ją myśl, jakby miała pracować na wierszu z DataFrame. Do dyspozycji masz zmienną row, możesz się odwoływać do niej, jak do wiersza danych, sprawdzać wartości, pobierać dane, budować if, while – cokolwiek. Funkcja ta może zwracać nowy obiekt Series:

Jak wywołać tą funkcję? Tak:

Istotne jest wskazanie argumentem axis, że funkcja ma być stosowana do każdego wiesza, bo domyślnie apply wywołuje funkcję dla kolumn. Oto wynik:

Ten wynik można zapisać do innego DataFrame, czy właściwie zrobić z nim, co tam się chce 🙂

Funkcja apply – stosuj w przypadkach niestandardowych

Dodaj komentarz:

Autor: Rafał Kraik