Mam prostą ramkę DataFrame, taką jak poniżej:
Chcę wybrać wszystkie wartości z kolumny „Pierwszy sezon” i zastąpić te, które są powyżej 1990 r., 1. W tym przykładzie tylko Baltimore Ravens zastąpiłoby rok 1996 wartością 1 (pozostawiając resztę danych w stanie nienaruszonym).
Użyłem następujących:
df.loc[(df['First Season'] > 1990)] = 1
Ale zastępuje wszystkie wartości w tym wierszu 1, a nie tylko wartości z kolumny „Pierwszy sezon”.
Jak mogę zamienić tylko wartości z tej kolumny?
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
. Zasadniczo próbuję zrobićdf['A'] = np.where(df['B'] in some_values, df['A']*2, df['A]
. Czy ktoś ma na to pomysł?dziwne, że nikt nie ma tej odpowiedzi, jedyną brakującą częścią twojego kodu jest [„Pierwszy sezon”] zaraz po df i po prostu usuń nawiasy klamrowe w środku.
źródło
dla pojedynczego warunku, tj.
( 'employrate'] > 70 )
Użyj tego:
dlatego składnia jest następująca:
W przypadku wielu warunków, tj.
(df['employrate'] <=55) & (df['employrate'] > 50)
Użyj tego:
dlatego składnia jest następująca:
źródło
Wyjaśnienie:
df.loc
przyjmuje dwa argumenty, „indeks wiersza” i „indeks kolumny”. Sprawdzamy, czy wartość jest większa niż 27 wartości każdego wiersza w kolumnie „Pierwszy sezon”, a następnie zastępujemy ją 1.źródło