Ho una domanda veloce. Ho creato un dataframe che ha un sacco di caratteristiche. Voglio creare una nuova colonna che seleziona tutte le righe tra due righe specifiche (che stanno per essere ingressi).
Dire che il dataframe è il seguente:
data = {'currency': ['Euro', 'Euro', 'Euro', 'Dollar', 'Dollar', 'Yen', 'Yen', 'Yen', 'Pound', 'Pound', 'Pound, 'Pesos', 'Pesos'],
'cost': [34, 67, 32, 29, 48, 123, 23, 45, 78, 86, 23, 45, 67]}
df = pd.DataFrame(data, columns = ['currency', 'cost'])
df
Voglio aggiungere una nuova colonna che assegna un 1 quando viene soddisfatta una condizione. Nel mio caso la condizione è tutte le righe tra due valute specifiche. Ad esempio, dire che io voglio tutte le valute tra 'Dollar' e 'Pound'. La mia ipotesi è che ho per creare una maschera e usarlo come un condizionale, che dirà selezionare tutte le righe tra la prima fila 'Dollar' e l'ultima riga 'Pound' (vale a dire le righe 3-10).
Ho problemi creando quella maschera, però, come le valute vengono selezionati in ordine alfabetico:
mask = (df['currency'] >= 'Dollar') & (df['currency'] <= 'Pound')
Quanto sopra crea una nuova colonna con T in tutte le valute, ad eccezione 'yen'. Posso capire perché quanto sopra non riesce, ma non riesco a pensare ad un modo di fare quello che voglio.
Nota: gli stessi nomi delle valute arriveranno in gruppi, ad esempio 'Pounds' non può essere in righe 4-5 e poi 8-10.
Grazie in anticipo