Mam ramkę danych pandy z dwiema kolumnami. Muszę zmienić wartości pierwszej kolumny bez wpływu na drugą i wrócić do całej ramki danych z tylko pierwszymi wartościami kolumn. Jak mogę to zrobić, stosując podanie w pandach?Pandy: Jak mogę użyć funkcji apply() dla pojedynczej kolumny?
Odpowiedz
Biorąc pod uwagę dataframe przykładowy df
jak:
a,b
1,2
2,3
3,4
4,5
co chcesz to:
df['a'] = df['a'].apply(lambda x: x + 1)
która zwraca:
a b
0 2 2
1 3 3
2 4 4
3 5 5
'apply' nie powinien nigdy być używany w sytuacji takiej jak ta –
@TedPetrou masz całkowitą rację, to był tylko przykład na to, jak zastosować ogólną funkcję w jednej kolumnie, jak zadawał OP. –
Dla pojedynczej kolumny lepiej użyć map()
, jak to:
df = pd.DataFrame([{'a': 15, 'b': 15, 'c': 5}, {'a': 20, 'b': 10, 'c': 7}, {'a': 25, 'b': 30, 'c': 9}])
a b c
0 15 15 5
1 20 10 7
2 25 30 9
df['a'] = df['a'].map(lambda a: a/2.)
a b c
0 7.5 15 5
1 10.0 10 7
2 12.5 30 9
Dlaczego 'map()' jest lepsze niż 'apply()' dla pojedynczej kolumny? – ChaimG
Myślę, że powinno to być "lambda a: a/2.". –
Nie potrzebujesz w ogóle funkcji. Możesz pracować bezpośrednio na całej kolumnie.
Przykład Dane:
>>> df = pd.DataFrame({'a': [100, 1000], 'b': [200, 2000], 'c': [300, 3000]})
>>> df
a b c
0 100 200 300
1 1000 2000 3000
pół wszystkie wartości w kolumnie a
:
>>> df.a = df.a/2
>>> df
a b c
0 50 200 300
1 500 2000 3000
- 1. Pandy DataFrame stos wiele wartości kolumny do pojedynczej kolumny
- 2. Użyj Pandy groupby() + apply() z argumentami
- 3. Liczba pojedynczej kolumny dla różnych warunków
- 4. Pandy: funkcja wykładnicza wygładzający dla kolumny
- 5. Wyniki kwerendy grupowania SQL dla pojedynczej kolumny
- 6. MySQL: Wiele wstawek dla pojedynczej kolumny
- 7. Pandy: suma DataFrame wierszy dla danej kolumny
- 8. Jak przekazywać wiele argumentów do funkcji apply
- 9. Jak mogę użyć funkcji edit_post w PyTumblr?
- 10. Używanie "apply" do zastosowania funkcji do macierzy, w której parametry są specyficzne dla kolumny
- 11. Jak mogę "rozpakować" określone kolumny z pandy DataFrame?
- 12. Jak przekonwertować ramki danych pojedynczej kolumny Pandy do serii lub numpy wektora
- 13. Jak mogę wyłączyć ostrzeżenie JSLint dla pojedynczej linii?
- 14. Pandy Pythona - Data kolumny do kolumny Indeks
- 15. Pandy: jak sumować kolumny na podstawie innych wartości kolumn?
- 16. dodaj kolumny różnej długości pandy
- 17. Jak mogę filtrować linie przy obciążeniu w funkcji Pandy read_csv?
- 18. Kombajny Pandy DataFrame DateTime Kolumny
- 19. Jak mogę użyć Boost.Bind dla typów złożonych?
- 20. Jak mogę użyć complex.h dla Androida NDK?
- 21. Wybieranie kolumny pandy według lokalizacji
- 22. Idiom do upuszczania pojedynczej kolumny w data.table
- 23. Pisanie listy Pythona do pojedynczej kolumny CSV
- 24. kolumny specyficzne dla wypełnienia do przodu w ramce danych pandy
- 25. Cythonising Pandy: ctypes dla treści, indeksu i kolumny
- 26. Dlaczego Pandy domyślnie przechodzą przez kolumny DataFrame?
- 27. Pandy: zastosowanie różnych funkcji do różnych kolumn
- 28. Dlaczego nie mogę użyć `import *` w funkcji?
- 29. Używanie funkcji apply na macierzy z wpisami NA
- 30. Jak mogę użyć funkcji echo JSFiddle z JQuery?
Należy zakładać przykładowe dane wejściowe i żądanej mocy. –
Powinieneś prawie nigdy nie używać 'apply' w takiej sytuacji. Zamiast tego użyj bezpośrednio kolumny. –