Cela devrait être incroyablement facile, mais je ne peux pas le faire fonctionner.
Je souhaite filtrer mon ensemble de données sur deux valeurs ou plus.
#this works, when I filter for one value
df.loc[df['channel'] == 'sale']
#if I have to filter, two separate columns, I can do this
df.loc[(df['channel'] == 'sale')&(df['type']=='A')]
#but what if I want to filter one column by more than one value?
df.loc[df['channel'] == ('sale','fullprice')]
Devrait-il s'agir d'une instruction OR? Je peux faire quelque chose comme dans SQL en utilisant in?
Il existe une méthode df.isin(values)
qui teste si chaque élément du DataFrame
est contenu dans values
. Donc, comme @MaxU l'a écrit dans le commentaire, vous pouvez utiliser
df.loc[df['channel'].isin(['sale','fullprice'])]
filtrer une colonne par plusieurs valeurs.