Il codice seguente stamperà True perché la serie contiene almeno un elemento che è maggiore di 1. Tuttavia, sembra un po 'non-Pythonic. C'è un modo più Pythonic per restituire True se una serie contiene un numero che è> un valore particolare?Controlla se una serie di pandas ha almeno un elemento maggiore di un valore
import pandas as pd
s = pd.Series([0.5, 2])
print True in (s > 1)
Vero
EDIT: Non solo è la risposta di cui sopra non-Pythonic, che a volte restituire un risultato errato per qualche motivo. Per esempio:
s = pd.Series([0.5])
print True in (s < 1)
False
Come fai a estendere tale operazione a un insieme di colonne in modo che ritorni se c'è almeno un valore maggiore di zero tra tutti i valori? –
@FedericoGentile intendi qualcosa come 'any (axis = 1) .any()'? Innanzitutto, verrà controllato su tutte le righe nel tuo sottoinsieme e produrrà la serie Pandas. Secondo, controlli le serie per qualsiasi valore 'True'. Altrimenti potresti fornire un esempio nel commento o forse meglio fare una nuova domanda con tutti i dettagli. –
Intendevo se ho un dataframe con 3 colonne (A, B, C) e voglio verificare se c'è almeno un valore maggiore di 0 nella colonna A e B ... una possibile soluzione è di fare questo: (df.A> 1) .any() e (df.B> 1) .any(). C'è un modo più elegante ed elegante per farlo? –